From 18a7f9f40e5fab3bee5d4ac3d8fd0273dea052d6 Mon Sep 17 00:00:00 2001
From: 黄学彪 <hxb@hdlchina.com.cn>
Date: 星期日, 26 四月 2020 12:05:28 +0800
Subject: [PATCH] 先上传一个非最新的版本

---
 ZigbeeApp/Home.Ios/AppDelegate.cs                                                  |    3 
 ZigbeeApp/GateWay.Droid/Assets/Language.ini                                        |    4 
 ZigbeeApp/Shared/Phone/UserCenter/UserMain/UserMainForm.cs                         |   25 +
 ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlGatewayReceiveLogic.cs       |   40 +
 ZigbeeApp/Shared/Phone/Category/SelectFloorForm.cs                                 |   16 
 ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlSafeguardLogic.cs            |    4 
 ZigbeeApp/Shared/DLL/IOS/Shared.IOS.dll                                            |    0 
 ZigbeeApp/Shared/Phone/Category/Controls/DeviceRow/DeviceAirSwitchRowControl.cs    |    5 
 ZigbeeApp/Shared/Common/ResponseEntity/GetAreaCode.cs                              |   10 
 ZigbeeApp/Shared/Phone/Category/SelectHouseForm.cs                                 |   10 
 ZigbeeApp/Shared/Phone/Category/Controls/DeviceRow/DeviceColorLightRowControl.cs   |    5 
 ZigbeeApp/Shared/Common/CommonPage.cs                                              |    2 
 ZigbeeApp/Shared/Phone/Device/Logic/SkipView.cs                                    |    2 
 ZigbeeApp/Shared/Phone/MainPage/ControlForm/DeviceAcDetailCardMethord.cs           |    7 
 ZigbeeApp/Shared/Phone/Category/CategoryMainForm.cs                                |    2 
 ZigbeeApp/Shared/Phone/MainPage/HomeMainPageForm.cs                                |    4 
 ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlDeviceAttributeLogic.cs      |  293 ++++++++++++
 ZigbeeApp/Shared/Common/SceneUI.cs                                                 |    1 
 ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/BindInfo.cs                          |    1 
 ZigbeeApp/Shared/Phone/Login/PhoneZone.cs                                          |    9 
 ZigbeeApp/Shared/Phone/MainPage/Controls/DeviceCard/DeviceAcCardControl.cs         |    5 
 ZigbeeApp/Shared/Phone/UserCenter/Device/DoorLock/DoorLockHistoryLogForm.cs        |  176 +++++++
 ZigbeeApp/Shared/Phone/Category/Controls/DeviceRow/DeviceRelayRowControl.cs        |    5 
 ZigbeeApp/Shared/Phone/MainPage/Controls/DeviceCard/DeviceColorLightCardControl.cs |    5 
 ZigbeeApp/Shared/Phone/UserCenter/Device/AirConditioner/IndoorUnitListForm.cs      |    2 
 ZigbeeApp/Shared/Phone/Category/Controls/DeviceRow/DeviceAcRowControl.cs           |    2 
 ZigbeeApp/Shared/Phone/Device/Logic/CurrentDeviceState.cs                          |   14 
 ZigbeeApp/Shared/Phone/MainPage/Controls/SelectLocalDeviceImageForm.cs             |  118 ++++
 ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceAddSuccessForm.cs                   |    4 
 ZigbeeApp/Home.Ios/Resources/Language.ini                                          |    4 
 ZigbeeApp/Shared/Phone/MainPage/Controls/DeviceCard/DeviceCurtainCardControl.cs    |    5 
 ZigbeeApp/Shared/Phone/Device/CommonForm/RoomView.cs                               |    7 
 ZigbeeApp/Shared/Phone/Device/Logic/LogicCommunalPage.cs                           |    8 
 ZigbeeApp/Shared/Phone/Category/Controls/DeviceRow/DeviceCurtainRowControl.cs      |    2 
 ZigbeeApp/Shared/Phone/MainPage/ControlForm/DeviceColorLightDetailCardForm.cs      |    1 
 ZigbeeApp/Shared/R.cs                                                              |   21 
 ZigbeeApp/Shared/Phone/Device/Logic/OneLogic.cs                                    |    4 
 ZigbeeApp/Shared/Phone/MainPage/ControlForm/DeviceAcDetailCardForm.cs              |   69 +-
 ZigbeeApp/Shared/Phone/MainPage/Controls/DeviceCard/DeviceAirSwitchCardControl.cs  |    5 
 ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlDeviceDoorLockLogic.cs       |    4 
 ZigbeeApp/Home.Ios/Info.plist                                                      |   14 
 ZigbeeApp/Shared/Phone/MainPage/ListRoomViewFrom.cs                                |    8 
 ZigbeeApp/Shared/Phone/Device/CommonForm/DeviceIconSelectedIMGByLocal.cs           |   16 
 ZigbeeApp/Shared/Phone/MainPage/Controls/DeviceCard/DeviceRelayCardControl.cs      |    5 
 ZigbeeApp/Shared/Shared.projitems                                                  |   19 
 ZigbeeApp/Shared/Phone/Category/AddOrEditorSceneForm.cs                            |    9 
 /dev/null                                                                          |  324 -------------
 ZigbeeApp/Shared/Phone/MainPage/UnallocatedRoomForm.cs                             |    1 
 ZigbeeApp/Shared/Common/House.cs                                                   |   31 -
 ZigbeeApp/Shared/Phone/Device/CommonForm/SceneCategoryView.cs                      |    1 
 ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Common/UserCenterCommon.cs            |   50 ++
 51 files changed, 867 insertions(+), 515 deletions(-)

diff --git a/ZigbeeApp/GateWay.Droid/Assets/Language.ini b/ZigbeeApp/GateWay.Droid/Assets/Language.ini
index e07949f..5f78b79 100755
--- a/ZigbeeApp/GateWay.Droid/Assets/Language.ini
+++ b/ZigbeeApp/GateWay.Droid/Assets/Language.ini
@@ -1806,6 +1806,10 @@
 16097=鍜�
 16098=鏈嶅姟鏉℃
 16099=璇峰厛闃呰骞跺悓鎰忋�婇殣绉佹潈鏀跨瓥銆嬪拰銆婃湇鍔℃潯娆俱��
+16100=甯稿紑妯″紡寮�鍚�(鑷姩鍖栬Е鍙�)
+16101=甯稿紑妯″紡缁撴潫(鑷姩鍖栬Е鍙�)
+16102=涓存椂瀵嗙爜寮�閿佹垚鍔�
+16103=涓存椂瀵嗙爜寮�閿佸け璐�
 
 ;鈽呪槄鈽呪槄涓嬮潰杩欎簺鏄帴鍙g殑杩斿洖淇℃伅缈昏瘧,浠�18000寮�濮嬧槄鈽呪槄鈽�
 18004=鎸囧畾缃戝叧宸茬粡琚粦瀹�
diff --git a/ZigbeeApp/Home.Ios/AppDelegate.cs b/ZigbeeApp/Home.Ios/AppDelegate.cs
index fc43236..856f57d 100644
--- a/ZigbeeApp/Home.Ios/AppDelegate.cs
+++ b/ZigbeeApp/Home.Ios/AppDelegate.cs
@@ -25,7 +25,8 @@
 
         public override bool FinishedLaunching(UIApplication application, NSDictionary launchOptions)
         {
-            //base.FinishedLaunching(application, launchOptions);
+            Shared.Application.IsMusicEnable = false;
+            base.FinishedLaunching(application, launchOptions);
             Shared.Application.FontSize = 12;
             Shared.Application.IsUsePingFang = true;
             Window = new UIWindow(UIScreen.MainScreen.Bounds);
diff --git a/ZigbeeApp/Home.Ios/Info.plist b/ZigbeeApp/Home.Ios/Info.plist
index b1f348e..16a3e1d 100755
--- a/ZigbeeApp/Home.Ios/Info.plist
+++ b/ZigbeeApp/Home.Ios/Info.plist
@@ -6,6 +6,8 @@
 	<string>闇�瑕佽鍙栭�氳褰�,鐢ㄤ簬娣诲姞鑳佽揩鑱旂郴浜�</string>
 	<key>NSLocationWhenInUseUsageDescription</key>
 	<string>浣跨敤鏈熼棿闇�瑕佷娇鐢ㄥ湴鐞嗕綅缃紝浠ヤ究鎻愪緵鏈嶅姟锛屽澶╂皵</string>
+	<key>NSLocationAlwaysUsageDescription</key>
+	<string>搴旂敤鍦ㄥ悗鍙拌繍琛�,瀹氭椂涓婃姤浣嶇疆,鎵ц鑷姩鍖栭�昏緫鍔熻兘</string>
 	<key>UIViewControllerBasedStatusBarAppearance</key>
 	<false/>
 	<key>NSPhotoLibraryUsageDescription</key>
@@ -51,13 +53,8 @@
 	<string>闇�瑕佷娇鐢ㄥ濯掍綋鏉冮檺锛屼互渚挎彁渚涙洿澶氱殑澶氬獟浣撴湇鍔�</string>
 	<key>aps-environment</key>
 	<string>development</string>
-	<key>UIBackgroundModes</key>
-	<array>
-		<string>location</string>
-		<string>remote-notification</string>
-	</array>
 	<key>CFBundleShortVersionString</key>
-	<string>1.0.20040901</string>
+	<string>1.0.20042601</string>
 	<key>CFBundleVersion</key>
 	<string>2</string>
 	<key>CFBundleURLTypes</key>
@@ -78,5 +75,10 @@
 	</array>
 	<key>CFBundleDevelopmentRegion</key>
 	<string>zh_CN</string>
+	<key>UIBackgroundModes</key>
+	<array>
+		<string>location</string>
+		<string>remote-notification</string>
+	</array>
 </dict>
 </plist>
diff --git a/ZigbeeApp/Home.Ios/Resources/Language.ini b/ZigbeeApp/Home.Ios/Resources/Language.ini
index e07949f..5f78b79 100755
--- a/ZigbeeApp/Home.Ios/Resources/Language.ini
+++ b/ZigbeeApp/Home.Ios/Resources/Language.ini
@@ -1806,6 +1806,10 @@
 16097=鍜�
 16098=鏈嶅姟鏉℃
 16099=璇峰厛闃呰骞跺悓鎰忋�婇殣绉佹潈鏀跨瓥銆嬪拰銆婃湇鍔℃潯娆俱��
+16100=甯稿紑妯″紡寮�鍚�(鑷姩鍖栬Е鍙�)
+16101=甯稿紑妯″紡缁撴潫(鑷姩鍖栬Е鍙�)
+16102=涓存椂瀵嗙爜寮�閿佹垚鍔�
+16103=涓存椂瀵嗙爜寮�閿佸け璐�
 
 ;鈽呪槄鈽呪槄涓嬮潰杩欎簺鏄帴鍙g殑杩斿洖淇℃伅缈昏瘧,浠�18000寮�濮嬧槄鈽呪槄鈽�
 18004=鎸囧畾缃戝叧宸茬粡琚粦瀹�
diff --git a/ZigbeeApp/Shared/Common/CommonPage.cs b/ZigbeeApp/Shared/Common/CommonPage.cs
index 684ca0d..edbd684 100755
--- a/ZigbeeApp/Shared/Common/CommonPage.cs
+++ b/ZigbeeApp/Shared/Common/CommonPage.cs
@@ -57,7 +57,7 @@
         /// <summary>
         /// 鐗堟湰鍙�
         /// </summary>
-        public static string CodeIDString = "1.0.20041601";
+        public static string CodeIDString = "1.0.20042201";
         /// <summary>
         /// 娉ㄥ唽鏉ユ簮(0:HDL On 1:Zigbee)
         /// </summary>
diff --git a/ZigbeeApp/Shared/Common/House.cs b/ZigbeeApp/Shared/Common/House.cs
index d8a2c06..0627613 100755
--- a/ZigbeeApp/Shared/Common/House.cs
+++ b/ZigbeeApp/Shared/Common/House.cs
@@ -23,17 +23,14 @@
                 return $"House_{Id}.json";
             }
         }
-
         /// <summary>
         /// 浣忓畢id--浣跨敤浜戠鎻愪緵鐨勪綇瀹呭敮涓�Id
         /// </summary>
         public string Id = string.Empty;
-
         /// <summary>
         /// 浣忓畢鍚嶇О
         /// </summary>
         public string Name = string.Empty;
-
         /// <summary>
         /// 鏄惁涓哄叾浠栦富鐢ㄦ埛鍒嗕韩杩囨潵鐨勪綇瀹�
         /// </summary>
@@ -42,7 +39,10 @@
         /// 褰撳墠浣忓畢鏄叾浠栦富甯愬彿鍒嗕韩杩囨潵鐨勪富甯愬彿鐨勫垎甯冨紡Id
         /// </summary>
         public string MainUserDistributedMark;
-
+        /// <summary>
+        /// 璇ヤ綇瀹呮槸鍚︽槸铏氭嫙鐨�,true鐨勮瘽浠h〃缃戝叧鍜岃澶囬兘鏄櫄鎷熺殑(榛樿涓篺alse)
+        /// </summary>
+        public bool IsVirtually = false;
         /// <summary>
         /// 浠呭瓙璐﹀彿鐧婚檰鐨勬椂鍊欎娇鐢�,褰撱�怚sOthreShare銆戜负"true"锛屽苟涓斻�怉ccountType銆戜负"1"鏃讹紝璇ヨ处鍙锋嫢鏈夌鐞嗗憳鏉冮檺
         /// </summary>
@@ -59,12 +59,10 @@
         /// 浣忓畢鎵�鍦ㄧ殑鍦扮悊浣嶇疆鐨勫悕绉�
         /// </summary>
         public string ResidenceAddressName = string.Empty;
-
         /// <summary>
         /// 鎴块棿鍒楄〃(鎴块棿鐨処D)
         /// </summary>
         public List<string> ListRooms = new List<string>();
-
         /// <summary>
         /// 妤煎眰瀛楀吀
         /// key:FloorId
@@ -75,27 +73,6 @@
         /// 褰撳墠妤煎眰Id
         /// </summary>
         public string CurrentFloorId = string.Empty;
-
-        /// <summary>
-        /// 鍏ㄥ眬鍦烘櫙璺緞鍒楄〃---澶囩敤
-        /// </summary>
-        public List<string> SceneFilePathList = new List<string> { };
-        /// <summary>
-        /// 璁惧璺緞鍒楄〃---澶囩敤
-        /// </summary>
-        public List<string> DeviceFilePathList = new List<string> { };
-        /// <summary>
-        /// 鍔熻兘璺緞鍒楄〃---澶囩敤
-        /// </summary>
-        public List<string> FunctionFilePathList = new List<string> { };
-        /// <summary>
-        /// 閫氱敤鏍囪瘑--澶囩敤
-        /// </summary>
-        public object Tag;
-        /// <summary>
-        /// 鏈熴�佹爧銆佸眰绛夊尯鍩�---澶囩敤
-        /// </summary>
-        public Dictionary<string, string> LocationInfoList = new Dictionary<string, string> { };
 
         #endregion
 
diff --git a/ZigbeeApp/Shared/Common/ResponseEntity/BackupInfoRes.cs b/ZigbeeApp/Shared/Common/ResponseEntity/BackupInfoRes.cs
deleted file mode 100755
index d8438fc..0000000
--- a/ZigbeeApp/Shared/Common/ResponseEntity/BackupInfoRes.cs
+++ /dev/null
@@ -1,12 +0,0 @@
-锘縰sing System;
-
-namespace Shared.Common.ResponseEntity
-{
-    [Serializable]
-    public class BackupInfoRes
-    {
-        public int Id;
-
-        public string FileName ;
-    }
-}
diff --git a/ZigbeeApp/Shared/Common/ResponseEntity/FirmwareManaRes.cs b/ZigbeeApp/Shared/Common/ResponseEntity/FirmwareManaRes.cs
deleted file mode 100755
index 1353c3e..0000000
--- a/ZigbeeApp/Shared/Common/ResponseEntity/FirmwareManaRes.cs
+++ /dev/null
@@ -1,51 +0,0 @@
-锘縰sing System;
-using System.Collections.Generic;
-
-namespace Shared.Common.ResponseEntity
-{
-    /// <summary>
-    /// 鍥轰欢
-    /// </summary>
-    [Serializable]
-    public class FirmwareManaRes
-    {
-        public string ResponseVersion;
-        public string StateCode;
-        public string ErrorInfo;
-        public List<FirmwareManaObj> ResponseData = new List<FirmwareManaObj>{};
-    }
-    [Serializable]
-    public class FirmwareManaObj
-    {
-        /// <summary>
-        /// apk鍚嶇О
-        /// </summary>
-        /// <value>The name.</value>
-        public string Name { get; set; }
-        /// <summary>
-        /// apk鐗堟湰
-        /// </summary>
-        /// <value>The firmware version.</value>
-        public string FirmwareVersion { get; set; }
-        /// <summary>
-        /// 澶囨敞
-        /// </summary>
-        /// <value>The remarks.</value>
-        public string Remarks { get; set; }
-        /// <summary>
-        /// 鍥轰欢鍒嗗竷寮忓敮涓�,涔熸槸涓嬭浇鏃剁殑[涓嬭浇鍥轰欢鐨勫敮涓�鏍囪瘑]
-        /// </summary>
-        /// <value>The distributed mark.</value>
-        public string DistributedMark { get; set; }
-        /// <summary>
-        /// 涓婚敭
-        /// </summary>
-        /// <value>The identifier.</value>
-        public string Id { get; set; }
-        /// <summary>
-        /// 鍒涘缓鏃堕棿
-        /// </summary>
-        /// <value>The created on UTC.</value>
-        public string CreatedOnUtc { get; set; }
-    }
-}
diff --git a/ZigbeeApp/Shared/Common/ResponseEntity/FolderRes.cs b/ZigbeeApp/Shared/Common/ResponseEntity/FolderRes.cs
deleted file mode 100755
index c6eeb38..0000000
--- a/ZigbeeApp/Shared/Common/ResponseEntity/FolderRes.cs
+++ /dev/null
@@ -1,14 +0,0 @@
-锘縰sing System;
-
-namespace Shared.Common.ResponseEntity
-{
-    [Serializable]
-    public class FolderRes
-    {
-        public int FolderID;
-
-        public string FolderName;
-
-        public DateTime FolderAddTime;
-    }
-}
diff --git a/ZigbeeApp/Shared/Common/ResponseEntity/GatewayRes.cs b/ZigbeeApp/Shared/Common/ResponseEntity/GatewayRes.cs
deleted file mode 100755
index a46f7f0..0000000
--- a/ZigbeeApp/Shared/Common/ResponseEntity/GatewayRes.cs
+++ /dev/null
@@ -1,23 +0,0 @@
-锘縰sing System;
-using System.Collections.Generic;
-
-namespace Shared.Common.ResponseEntity
-{
-    [Serializable]
-    public class GatewayRes
-    {
-        public List<GatewayObj> PageData = new List<GatewayObj>();
-        public int PageIndex;
-        public int PageSize;
-        public int TotalCount;
-        public int TotalPages;
-        public bool HasPreviousPage;
-        public bool HasNextPage; 
-    }
-    [Serializable]
-    public class GatewayObj
-    {
-        public string ZigbeeUniqueId{ get; set; } 
-
-     } 
-}
diff --git a/ZigbeeApp/Shared/Common/ResponseEntity/GetAreaCode.cs b/ZigbeeApp/Shared/Common/ResponseEntity/GetAreaCode.cs
index 89683af..206ebee 100755
--- a/ZigbeeApp/Shared/Common/ResponseEntity/GetAreaCode.cs
+++ b/ZigbeeApp/Shared/Common/ResponseEntity/GetAreaCode.cs
@@ -3,16 +3,6 @@
 namespace Shared.Common.ResponseEntity
 {
     [Serializable]
-    public class GetAreaCode
-    {
-        public List<AreaCodeOBJ> ResponseData = new List<AreaCodeOBJ>();
-        public string ErrorInfo_En;
-        public string ErrorInfo_Zh;
-        public string ResponseVersion;
-        public string StateCode;
-        public string ErrorInfo;
-    }
-    [Serializable]
     public class AreaCodeOBJ
     {
         public string Name{ get; set; }
diff --git a/ZigbeeApp/Shared/Common/ResponseEntity/UserRegisterReqDto.cs b/ZigbeeApp/Shared/Common/ResponseEntity/UserRegisterReqDto.cs
deleted file mode 100755
index 926a0e1..0000000
--- a/ZigbeeApp/Shared/Common/ResponseEntity/UserRegisterReqDto.cs
+++ /dev/null
@@ -1,10 +0,0 @@
-锘縰sing System;
-namespace Shared.Common.ResponseEntity
-{
-    public class UserRegisterReqDto
-    {
-        public UserRegisterReqDto()
-        {
-        }
-    }
-}
diff --git a/ZigbeeApp/Shared/Common/SceneRoomUI.cs b/ZigbeeApp/Shared/Common/SceneRoomUI.cs
deleted file mode 100755
index b6e5613..0000000
--- a/ZigbeeApp/Shared/Common/SceneRoomUI.cs
+++ /dev/null
@@ -1,62 +0,0 @@
-锘縰sing System;
-using System.Collections.Generic;
-using Shared.Phone.Device.Category;
-
-namespace Shared.Common
-{
-    /// <summary>
-    /// 鍦ㄥ垎绫诲満鏅腑浣跨敤锛屽睍绀鸿鍔犱笂鎴块棿鐨勫悕绉�
-    /// </summary>
-    [System.Serializable]
-    public class SceneRoomUI
-    {
-        /// <summary>
-        /// 鍦烘櫙淇℃伅
-        /// </summary>
-        public SceneUI sceneUI;
-        /// <summary>
-        /// 鎴块棿
-        /// </summary>
-        public Room room;
-
-        /// <summary>
-        /// 鎵�鏈夌殑鍦烘櫙鍜屾埧闂翠俊鎭�
-        /// </summary>
-        public static void GetAllSceneRoomUIList()
-        {
-            //閫夋嫨鍦烘櫙--鎵�鏈夋埧闂寸殑鎵�鏈夊満鏅�
-            AllSceneRoomUIList.Clear();
-            List<int> sceneIdList = new List<int> { };
-            var listAllRoom = Phone.UserCenter.HdlRoomLogic.Current.GetAllListRooms();
-            foreach (var r in listAllRoom)
-            {
-                if (r.ListSceneId.Count == 0)
-                {
-                    continue;
-                }
-                foreach (var sceneId in r.ListSceneId)
-                {
-                    var scene = Phone.UserCenter.HdlSceneLogic.Current.GetSceneUIBySceneId(sceneId);
-                    if (scene == null)
-                    {
-                        continue;
-                    }
-                    if(!sceneIdList.Contains(scene.Id))
-                    {
-                        var sceneRoomUI = new SceneRoomUI { sceneUI = scene, room = r };
-                        sceneIdList.Add(scene.Id);
-                        AllSceneRoomUIList.Add(sceneRoomUI);
-                    }
-                }
-            }
-        }
-
-        /// <summary>
-        /// 鎵�鏈夌殑鍦烘櫙鍜屾埧闂翠俊鎭� -璇峰厛璋冪敤 GetAllSceneRoomUIList
-        /// </summary>
-        [Newtonsoft.Json.JsonIgnore]
-        public static List<SceneRoomUI> AllSceneRoomUIList = new List<SceneRoomUI> { };
-
-        
-    }
-}
diff --git a/ZigbeeApp/Shared/Common/SceneTargetDeviceUI.cs b/ZigbeeApp/Shared/Common/SceneTargetDeviceUI.cs
deleted file mode 100755
index 666855b..0000000
--- a/ZigbeeApp/Shared/Common/SceneTargetDeviceUI.cs
+++ /dev/null
@@ -1,183 +0,0 @@
-锘縰sing System;
-using System.Collections.Generic;
-using System.Globalization;
-using ZigBee.Device;
-using static ZigBee.Device.Scene;
-
-namespace Shared.Common
-{
-    /// <summary>
-    /// 鍦烘櫙娣诲姞鎵ц鐩爣(璁惧銆佹椂闂撮棿闅斻�佸満鏅級
-    /// </summary>
-    [System.Serializable]
-    public class SceneTargetDeviceUI
-    {
-        /// <summary>
-        /// 鍦烘櫙娣诲姞瀵硅薄鐨勭被鍨� 榛樿0璁惧 2鏃堕棿娈�  1鍏朵粬鍦烘櫙
-        /// </summary>
-        public int Type = 0;
-        /// <summary>
-        /// 浠诲姟鍒楄〃涓殑鏁版嵁鍒楄〃
-        /// Type=0 瀛樺湪
-        /// </summary>
-        public List<Safeguard.TaskListInfo> TaskList = new List<Safeguard.TaskListInfo>();
-        /// <summary>
-        /// 閫夋嫨鐨勮澶�
-        /// Type=0 瀛樺湪
-        /// </summary>
-        public CommonDevice DeviceUI = new CommonDevice();
-
-        /// <summary>
-        /// Type=0銆�1銆�2 瀛樺湪
-        /// 寤舵椂鏃堕棿
-        /// </summary>
-        public int DelayTime = 0;
-        /// <summary>
-        /// 褰揟ype=2鏃跺瓨鍦�
-        /// 寤舵椂鎵ц搴忓彿锛岃〃绀虹鍑犱釜寤舵椂鍔ㄤ綔
-        /// </summary>
-        public int DelayTimeSerialNumber = 0;
-
-        /// <summary>
-        /// 閫夋嫨鐨勫満鏅�
-        /// Type=1 瀛樺湪
-        /// </summary>
-        public SceneUI SceneUI = new SceneUI();
-        /// <summary>
-        /// 浣滀负鎴愬憳鐨勫叾浠栧満鏅痠d銆�
-        /// Type=1 瀛樺湪
-        /// </summary>
-        public int ElseScenesId = 0;
-        /// <summary>
-        /// 鍦烘櫙鍚嶇О
-        /// Type=1 瀛樺湪
-        /// </summary>
-        public string SceneName = string.Empty;
-        /// <summary>
-        /// 鍞竴鏍囪瘑--HashCode
-        /// DateTime.Now.ToString("yyyyMMddHHmmss", DateTimeFormatInfo.InvariantInfo)
-        /// </summary>
-        public string SceneTargetDeviceUIID = Guid.NewGuid().ToString();
-
-        /// <summary>
-        /// GetDeviceStatu
-        /// </summary>
-        /// <returns></returns>
-        public string GetDeviceStatu()
-        {
-            if (DeviceUI.Type == ZigBee.Device.DeviceType.OnOffOutput)
-            {
-                if (TaskList.Count == 0)
-                {
-                    return null;
-                }
-                if (TaskList[0].Data1 == 1)
-                {
-                    return Language.StringByID(R.MyInternationalizationString.Open);
-                }
-                return Language.StringByID(R.MyInternationalizationString.Shut);
-            }
-            else if (DeviceUI.Type == ZigBee.Device.DeviceType.AirSwitch)
-            {
-                if (TaskList.Count == 0)
-                {
-                    return null;
-                }
-                if (TaskList[0].Data1 == 1)
-                {
-                    return Language.StringByID(R.MyInternationalizationString.Open);
-                }
-                return Language.StringByID(R.MyInternationalizationString.Shut);
-            }
-            else if (DeviceUI.Type == ZigBee.Device.DeviceType.DimmableLight)
-            {
-                if (TaskList.Count == 0)
-                {
-                    return null;
-                }
-                if (TaskList[0].Data1 == 0)
-                {
-                    return Language.StringByID(R.MyInternationalizationString.Shut);
-                }
-                return $"{(int)(TaskList[0].Data1 * 1.0 / 254 * 100)}%";
-            }
-            else if (DeviceUI.Type == ZigBee.Device.DeviceType.WindowCoveringDevice)
-            {
-                if (TaskList.Count == 0)
-                {
-                    return null;
-                }
-                if (TaskList[0].Data1 == 1)
-                {
-                    return Language.StringByID(R.MyInternationalizationString.Shut);
-                }
-                return $"{TaskList[0].Data2}%";
-            }
-            else if (DeviceUI.Type == ZigBee.Device.DeviceType.Thermostat)
-            {
-                //娓╁害锛屾ā寮忥紝椋庨��
-                string tempareture = string.Empty;
-                string model = string.Empty;
-                string wind = string.Empty;
-                if (TaskList.Count == 0)
-                {
-                    return null;
-                }
-                foreach(var taskListInfo in TaskList)
-                {
-                    if(taskListInfo.Data1==3)
-                    {
-                        if(taskListInfo.Data2==0)
-                        {
-                            return Language.StringByID(R.MyInternationalizationString.Shut);
-                        }
-                        else if(taskListInfo.Data2==1)
-                        {
-                            model = Language.StringByID(R.MyInternationalizationString.Mode_Auto);
-                        }
-                        else if(taskListInfo.Data2==3)
-                        {
-                            model = Language.StringByID(R.MyInternationalizationString.Mode_Cool);
-                        }
-                        else if (taskListInfo.Data2 == 4)
-                        {
-                            model = Language.StringByID(R.MyInternationalizationString.Mode_Heat);
-                        }
-                        else if (taskListInfo.Data2 == 7)
-                        {
-                            model = Language.StringByID(R.MyInternationalizationString.Mode_FanOnly);
-                        }
-                        else if (taskListInfo.Data2 == 8)
-                        {
-                            model = Language.StringByID(R.MyInternationalizationString.Mode_Dry);
-                        }
-                    }
-                    else if(taskListInfo.Data1==4 || taskListInfo.Data1==5)
-                    {
-                        tempareture = $"{ taskListInfo.Data2/100} 鈩�";
-                    }
-                    else if (taskListInfo.Data1 == 6)
-                    {
-                        if (taskListInfo.Data2 == 1)
-                        {
-                            wind = Language.StringByID(R.MyInternationalizationString.Fan_Low);
-                        }
-                        else if(taskListInfo.Data2 ==2)
-                        {
-                            wind = Language.StringByID(R.MyInternationalizationString.Fan_Middle);
-                        }
-                        else if (taskListInfo.Data2 == 3)
-                        {
-                            wind = Language.StringByID(R.MyInternationalizationString.Fan_Height);
-                        }
-                    }
-                }
-                return $"{tempareture},{model},{wind}";
-            }
-            else
-            {
-                return null;
-            }
-        }
-    }
-}
diff --git a/ZigbeeApp/Shared/Common/SceneUI.cs b/ZigbeeApp/Shared/Common/SceneUI.cs
index 9bd6282..4ca5160 100755
--- a/ZigbeeApp/Shared/Common/SceneUI.cs
+++ b/ZigbeeApp/Shared/Common/SceneUI.cs
@@ -1,6 +1,5 @@
 锘縰sing System;
 using System.Collections.Generic;
-using Shared.Phone.Device.Category;
 using Shared.Phone.UserCenter;
 
 namespace Shared.Common
diff --git a/ZigbeeApp/Shared/DLL/IOS/Shared.IOS.dll b/ZigbeeApp/Shared/DLL/IOS/Shared.IOS.dll
index be91c83..e3716df 100755
--- a/ZigbeeApp/Shared/DLL/IOS/Shared.IOS.dll
+++ b/ZigbeeApp/Shared/DLL/IOS/Shared.IOS.dll
Binary files differ
diff --git a/ZigbeeApp/Shared/Pad/MainPage.cs b/ZigbeeApp/Shared/Pad/MainPage.cs
deleted file mode 100755
index 2943b2e..0000000
--- a/ZigbeeApp/Shared/Pad/MainPage.cs
+++ /dev/null
@@ -1,22 +0,0 @@
-锘縩amespace Shared.Pad
-{
-    public  class MainPage
-    {
-        public  void Show(){
-            
-        }
-
-        static MainPage mainPage;
-        public static MainPage Instance
-        {
-            get
-            {
-                if (mainPage == null)
-                {
-                    mainPage = new MainPage { };
-                }
-                return mainPage;
-            }
-        }
-    }
-}
\ No newline at end of file
diff --git a/ZigbeeApp/Shared/Phone/Category/AddOrEditorSceneForm.cs b/ZigbeeApp/Shared/Phone/Category/AddOrEditorSceneForm.cs
index 8ee6132..156f29f 100755
--- a/ZigbeeApp/Shared/Phone/Category/AddOrEditorSceneForm.cs
+++ b/ZigbeeApp/Shared/Phone/Category/AddOrEditorSceneForm.cs
@@ -259,7 +259,7 @@
         /// </summary>
         private void InitAddTargetControl()
         {
-            if (this.frameTargetTableControl == null)
+            if (this.frameTargetTableControl == null || this.frameTargetTableControl.Parent == null)
             {
                 //娣诲姞鐩爣鐨勭殑瀹瑰櫒鎺т欢
                 this.frameTargetTableControl = new FrameListControl();
@@ -295,8 +295,11 @@
             {
                 //浠庣綉鍏宠幏鍙栧満鏅殑鎵ц鐩爣
                 var result = await this.GetSceneTargetList();
-                //娣诲姞銆愭墽琛岀洰鏍囪銆�
-                this.AddTargetRow();
+                if (result == true)
+                {
+                    //娣诲姞銆愭墽琛岀洰鏍囪銆�
+                    this.AddTargetRow();
+                }
             });
         }
 
diff --git a/ZigbeeApp/Shared/Phone/Category/CategoryMainForm.cs b/ZigbeeApp/Shared/Phone/Category/CategoryMainForm.cs
index 4b41911..d9c5abf 100755
--- a/ZigbeeApp/Shared/Phone/Category/CategoryMainForm.cs
+++ b/ZigbeeApp/Shared/Phone/Category/CategoryMainForm.cs
@@ -155,7 +155,7 @@
                 frameSwitchBack.AddChidren(btnFloorName);
                 btnFloorName.ButtonClickEvent += (sender, e) =>
                 {
-                    var floors = new Device.Category.SelectFloor();
+                    var floors = new SelectFloorForm();
                     AddChidren(floors);
                     floors.Init(580, 330, Direction.Right);
                     floors.changeFloor = true;
diff --git a/ZigbeeApp/Shared/Phone/Category/Controls/DeviceRow/DeviceAcRowControl.cs b/ZigbeeApp/Shared/Phone/Category/Controls/DeviceRow/DeviceAcRowControl.cs
index 89474f2..8de2889 100755
--- a/ZigbeeApp/Shared/Phone/Category/Controls/DeviceRow/DeviceAcRowControl.cs
+++ b/ZigbeeApp/Shared/Phone/Category/Controls/DeviceRow/DeviceAcRowControl.cs
@@ -102,7 +102,7 @@
             //妫�娴嬭兘鍚﹀彂閫佽幏鍙栫姸鎬佸懡浠�
             if (this.CheckCanSendStatuComand() == true)
             {
-                Device.DeviceLogic.ReadDeviceAttributeLogic.Instance.SendACStatuComand(this.device);
+                HdlDeviceAttributeLogic.Current.SendACStatuComand(this.device);
             }
         }
 
diff --git a/ZigbeeApp/Shared/Phone/Category/Controls/DeviceRow/DeviceAirSwitchRowControl.cs b/ZigbeeApp/Shared/Phone/Category/Controls/DeviceRow/DeviceAirSwitchRowControl.cs
index 9db3b47..dce8e43 100755
--- a/ZigbeeApp/Shared/Phone/Category/Controls/DeviceRow/DeviceAirSwitchRowControl.cs
+++ b/ZigbeeApp/Shared/Phone/Category/Controls/DeviceRow/DeviceAirSwitchRowControl.cs
@@ -1,4 +1,5 @@
-锘縰sing System;
+锘縰sing Shared.Phone.UserCenter;
+using System;
 using System.Collections.Generic;
 using System.Text;
 using ZigBee.Device;
@@ -115,7 +116,7 @@
             //妫�娴嬭兘鍚﹀彂閫佽幏鍙栫姸鎬佸懡浠�
             if (this.CheckCanSendStatuComand() == true)
             {
-                Device.DeviceLogic.ReadDeviceAttributeLogic.Instance.SendLightStatuComand(this.device);
+                HdlDeviceAttributeLogic.Current.SendLightStatuComand(this.device);
             }
         }
 
diff --git a/ZigbeeApp/Shared/Phone/Category/Controls/DeviceRow/DeviceColorLightRowControl.cs b/ZigbeeApp/Shared/Phone/Category/Controls/DeviceRow/DeviceColorLightRowControl.cs
index a3ab47f..1066d1e 100755
--- a/ZigbeeApp/Shared/Phone/Category/Controls/DeviceRow/DeviceColorLightRowControl.cs
+++ b/ZigbeeApp/Shared/Phone/Category/Controls/DeviceRow/DeviceColorLightRowControl.cs
@@ -1,4 +1,5 @@
-锘縰sing System;
+锘縰sing Shared.Phone.UserCenter;
+using System;
 using System.Collections.Generic;
 using System.Text;
 using ZigBee.Device;
@@ -101,7 +102,7 @@
             //妫�娴嬭兘鍚﹀彂閫佽幏鍙栫姸鎬佸懡浠�
             if (this.CheckCanSendStatuComand() == true)
             {
-                Device.DeviceLogic.ReadDeviceAttributeLogic.Instance.SendDimmableLightStatuComand(this.device);
+                HdlDeviceAttributeLogic.Current.SendDimmableLightStatuComand(this.device);
             }
         }
 
diff --git a/ZigbeeApp/Shared/Phone/Category/Controls/DeviceRow/DeviceCurtainRowControl.cs b/ZigbeeApp/Shared/Phone/Category/Controls/DeviceRow/DeviceCurtainRowControl.cs
index 325d9ac..8fc210c 100755
--- a/ZigbeeApp/Shared/Phone/Category/Controls/DeviceRow/DeviceCurtainRowControl.cs
+++ b/ZigbeeApp/Shared/Phone/Category/Controls/DeviceRow/DeviceCurtainRowControl.cs
@@ -137,7 +137,7 @@
             //妫�娴嬭兘鍚﹀彂閫佽幏鍙栫姸鎬佸懡浠�
             if (this.CheckCanSendStatuComand() == true)
             {
-                Device.DeviceLogic.ReadDeviceAttributeLogic.Instance.SendCurtainStatuComand(this.device);
+                HdlDeviceAttributeLogic.Current.SendCurtainStatuComand(this.device);
             }
             if (((Rollershade)this.device).WcdType == -1)
             {
diff --git a/ZigbeeApp/Shared/Phone/Category/Controls/DeviceRow/DeviceRelayRowControl.cs b/ZigbeeApp/Shared/Phone/Category/Controls/DeviceRow/DeviceRelayRowControl.cs
index 69a2494..f8db2d5 100755
--- a/ZigbeeApp/Shared/Phone/Category/Controls/DeviceRow/DeviceRelayRowControl.cs
+++ b/ZigbeeApp/Shared/Phone/Category/Controls/DeviceRow/DeviceRelayRowControl.cs
@@ -1,4 +1,5 @@
-锘縰sing System;
+锘縰sing Shared.Phone.UserCenter;
+using System;
 using System.Collections.Generic;
 using System.Text;
 using ZigBee.Device;
@@ -115,7 +116,7 @@
             //妫�娴嬭兘鍚﹀彂閫佽幏鍙栫姸鎬佸懡浠�
             if (this.CheckCanSendStatuComand() == true)
             {
-                Device.DeviceLogic.ReadDeviceAttributeLogic.Instance.SendLightStatuComand(this.device);
+                HdlDeviceAttributeLogic.Current.SendLightStatuComand(this.device);
             }
         }
 
diff --git a/ZigbeeApp/Shared/Phone/Device/Category/SelectFloor.cs b/ZigbeeApp/Shared/Phone/Category/SelectFloorForm.cs
similarity index 90%
rename from ZigbeeApp/Shared/Phone/Device/Category/SelectFloor.cs
rename to ZigbeeApp/Shared/Phone/Category/SelectFloorForm.cs
index 8779c91..9c92d25 100755
--- a/ZigbeeApp/Shared/Phone/Device/Category/SelectFloor.cs
+++ b/ZigbeeApp/Shared/Phone/Category/SelectFloorForm.cs
@@ -2,9 +2,9 @@
 using System.Collections.Generic;
 using Shared.Common;
 
-namespace Shared.Phone.Device.Category
+namespace Shared.Phone.Category
 {
-    public class SelectFloor : FrameLayout
+    public class SelectFloorForm : FrameLayout
     {
 
         public Action<string> FloorAction;
@@ -22,7 +22,7 @@
         /// <summary>
 		/// Init
 		/// </summary>
-		public void Init(int x, int y, CommonForm.Direction direction = CommonForm.Direction.Left)
+		public void Init(int x, int y, Device.CommonForm.Direction direction = Device.CommonForm.Direction.Left)
         {
             dialogBackground = new Dialog
             {
@@ -85,7 +85,7 @@
             if (floorCount > 0)
             {
                 string directStr = string.Empty;
-                if (direction == CommonForm.Direction.Right)
+                if (direction == Device.CommonForm.Direction.Right)
                 {
                     directStr = "Right";
                 }
@@ -122,7 +122,7 @@
         /// <param name="verticalScrolView"></param>
         private void AddFloor(VerticalScrolViewLayout verticalScrolView, KeyValuePair<string, string> floor,bool isLast=false)
         {
-            var frow = new CommonForm.LeftIconButtonRow(449, 150);
+            var frow = new Device.CommonForm.LeftIconButtonRow(449, 150);
             frow.Width = Application.GetMinRealAverage(449);
             frow.Height = Application.GetMinRealAverage(150);
             frow.Tag = floor.Key;
@@ -154,15 +154,15 @@
         /// <param name="mouseEventArgs"></param>
         private void SelectFloor_MouseUpEvent(object sender, MouseEventArgs mouseEventArgs)
         {
-            (sender as CommonForm.LeftIconButtonRow).IsSelected = true;
+            (sender as Device.CommonForm.LeftIconButtonRow).IsSelected = true;
             if (changeFloor)
             {
-                Config.Instance.Home.CurrentFloorId = (sender as CommonForm.LeftIconButtonRow).Tag.ToString();
+                Config.Instance.Home.CurrentFloorId = (sender as Device.CommonForm.LeftIconButtonRow).Tag.ToString();
                 Config.Instance.Home.Save(false);
                 UserCenter.HdlRoomLogic.Current.RefreshRoomListView();
             }
             RemoveView();
-            FloorAction?.Invoke((sender as CommonForm.LeftIconButtonRow).Tag.ToString());
+            FloorAction?.Invoke((sender as Device.CommonForm.LeftIconButtonRow).Tag.ToString());
 
         }
 
diff --git a/ZigbeeApp/Shared/Phone/Device/Category/SelectHouse.cs b/ZigbeeApp/Shared/Phone/Category/SelectHouseForm.cs
similarity index 92%
rename from ZigbeeApp/Shared/Phone/Device/Category/SelectHouse.cs
rename to ZigbeeApp/Shared/Phone/Category/SelectHouseForm.cs
index 37dc7ef..2c9bbd6 100755
--- a/ZigbeeApp/Shared/Phone/Device/Category/SelectHouse.cs
+++ b/ZigbeeApp/Shared/Phone/Category/SelectHouseForm.cs
@@ -2,9 +2,9 @@
 using System.Collections.Generic;
 using Shared.Common;
 
-namespace Shared.Phone.Device.Category
+namespace Shared.Phone.Category
 {
-    public class SelectHouse : FrameLayout
+    public class SelectHouseForm : FrameLayout
     {
         public Action<string> HouseAction;
 
@@ -106,7 +106,7 @@
         /// <param name="verticalScrolView"></param>
         private void AddFloor(VerticalScrolViewLayout verticalScrolView, House house)
         {
-            var frow = new CommonForm.LeftIconButtonRow(449, 150);
+            var frow = new Device.CommonForm.LeftIconButtonRow(449, 150);
             frow.Width = Application.GetMinRealAverage(449);
             frow.Height = Application.GetMinRealAverage(150);
             frow.Tag = house.FileName;
@@ -127,8 +127,8 @@
         /// <param name="mouseEventArgs"></param>
         private void SelectFloor_MouseUpEvent(object sender, MouseEventArgs mouseEventArgs)
         {
-            (sender as CommonForm.LeftIconButtonRow).IsSelected = true;
-            var home = House.GetHouseByFilePath((sender as CommonForm.LeftIconButtonRow).Tag.ToString());
+            (sender as Device.CommonForm.LeftIconButtonRow).IsSelected = true;
+            var home = House.GetHouseByFilePath((sender as Device.CommonForm.LeftIconButtonRow).Tag.ToString());
             RemoveView();
             HouseAction?.Invoke(home.Id);
         }
diff --git a/ZigbeeApp/Shared/Phone/Device/CommonForm/CompleteButton.cs b/ZigbeeApp/Shared/Phone/Device/CommonForm/CompleteButton.cs
deleted file mode 100755
index dbc70fa..0000000
--- a/ZigbeeApp/Shared/Phone/Device/CommonForm/CompleteButton.cs
+++ /dev/null
@@ -1,51 +0,0 @@
-锘縰sing System;
-using Shared.Common;
-namespace Shared.Phone.Device.CommonForm
-{
-    /// <summary>
-    /// Complete button.
-    /// <para>榛樿鏂囧瓧锛� 瀹屾垚 </para>
-    /// <para>鐧借壊瀛椾綋</para>
-    /// <para>榛戣壊鑳屾櫙</para>
-    /// <para>鏂囧瓧灞呬腑</para>
-    /// <para>榛樿瀛楀彿澶у皬</para>
-    /// </summary>
-    public class CompleteButton:Button
-    {
-        /// <summary>
-        /// CompleteButton
-        /// </summary>
-        /// <param name="y"></param>
-        /// <param name="width"></param>
-        /// <param name="height"></param>
-        public CompleteButton(int y, int width, int height)
-        {
-            this.Y = Application.GetRealHeight(y);
-            this.Width = Application.GetRealWidth(width);
-            this.Height = Application.GetRealHeight(height);
-            TextID = R.MyInternationalizationString.Complete;
-            BackgroundColor = ZigbeeColor.Current.GXCButtonBlackSelectedColor;
-            TextColor = ZigbeeColor.Current.GXCTextWhiteColor;
-            IsBold = true;
-            TextSize = 16;
-            Gravity = Gravity.CenterHorizontal;
-            Radius = (uint)Application.GetRealHeight(height / 2);
-        }
-        /// <summary>
-        /// SetTitle
-        /// </summary>
-        /// <param name="title"></param>
-        public void SetTitle(string title)
-        {
-            Text = title;
-        }
-        /// <summary>
-        /// SetTitle
-        /// </summary>
-        /// <param name="title"></param>
-        public void SetTitle(int title)
-        {
-            SetTitle(Language.StringByID(title));
-        }
-    }
-}
diff --git a/ZigbeeApp/Shared/Phone/Device/CommonForm/DeviceIconSelectedIMGByLocal.cs b/ZigbeeApp/Shared/Phone/Device/CommonForm/DeviceIconSelectedIMGByLocal.cs
index e9ec72d..b965863 100755
--- a/ZigbeeApp/Shared/Phone/Device/CommonForm/DeviceIconSelectedIMGByLocal.cs
+++ b/ZigbeeApp/Shared/Phone/Device/CommonForm/DeviceIconSelectedIMGByLocal.cs
@@ -3,7 +3,7 @@
 
 namespace Shared.Phone.Device.CommonForm
 {
-    public class DeviceIconSelectedIMGByLocal:FrameLayout
+    public class DeviceIconSelectedIMGByLocal : FrameLayout
     {
         /// <summary>
         /// bodyFrameLayout
@@ -12,7 +12,7 @@
         /// <summary>
         /// action
         /// </summary>
-        public Action<string,string > action;
+        public Action<string, string> action;
         /// <summary>
         /// tempIcon
         /// </summary>
@@ -92,7 +92,7 @@
                 scrollView.AddChidren(itemView);
                 for (int i = 0; i < 4; i++)
                 {
-                    var icon = new FunctionIconButton(58+ i*(207+46), 58);
+                    var icon = new FunctionIconButton(58 + i * (207 + 46), 58);
                     icon.Init($"FunctionIcon/{k}Icon.png", $"FunctionIcon/{k}IconSelected.png");
                     itemView.AddChidren(icon);
                     k++;
@@ -107,11 +107,11 @@
                     icon.ImageBtn.MouseUpEventHandler += selectIcon;
                 }
             }
-
-            var confirmBtn = new CommonForm.CompleteButton(1472, 907, 127);
-            confirmBtn.SetTitle(R.MyInternationalizationString.Save);
-            bodyFrameLayout.AddChidren(confirmBtn);
-            confirmBtn.MouseUpEventHandler += (sender, e) =>
+
+            var btnConfirm = new UserCenter.BottomClickButton();
+            btnConfirm.TextID = R.MyInternationalizationString.Save;
+            bodyFrameLayout.AddChidren(btnConfirm);
+            btnConfirm.ButtonClickEvent += (sender, e) =>
             {
                 if (tempIcon.ImageBtn != null)
                 {
diff --git a/ZigbeeApp/Shared/Phone/Device/CommonForm/RoomView.cs b/ZigbeeApp/Shared/Phone/Device/CommonForm/RoomView.cs
index d9e47fd..0c3df7d 100755
--- a/ZigbeeApp/Shared/Phone/Device/CommonForm/RoomView.cs
+++ b/ZigbeeApp/Shared/Phone/Device/CommonForm/RoomView.cs
@@ -1,6 +1,5 @@
 锘縰sing System;
 using Shared.Common;
-using Shared.Phone.Device.DeviceLogic;
 using Shared.Phone.UserCenter;
 using ZigBee.Device;
 
@@ -176,13 +175,13 @@
             {
                 //鍙戦�佽幏鍙栨俯搴︾殑鍛戒护
                 var dev = Common.LocalDevice.Current.GetDevice(room.TemperatrueDevice);
-                ReadDeviceAttributeLogic.Instance.SendTemperatureStatuComand(dev);
+                HdlDeviceAttributeLogic.Current.SendTemperatureStatuComand(dev);
             }
 
             if (string.IsNullOrEmpty(room.HumidityDevice) == false)
             {
-                var dev = Common.LocalDevice.Current.GetDevice(room.HumidityDevice);
-                ReadDeviceAttributeLogic.Instance.SendHumidityStatuComand(dev);
+                var dev = Common.LocalDevice.Current.GetDevice(room.HumidityDevice);
+                HdlDeviceAttributeLogic.Current.SendHumidityStatuComand(dev);
             }
 
             roomListBtn = new Button()
diff --git a/ZigbeeApp/Shared/Phone/Device/CommonForm/SceneCategoryView.cs b/ZigbeeApp/Shared/Phone/Device/CommonForm/SceneCategoryView.cs
index c12c3c5..77d8211 100755
--- a/ZigbeeApp/Shared/Phone/Device/CommonForm/SceneCategoryView.cs
+++ b/ZigbeeApp/Shared/Phone/Device/CommonForm/SceneCategoryView.cs
@@ -1,7 +1,6 @@
 锘縰sing System;
 using System.Collections.Generic;
 using Shared.Common;
-using Shared.Phone.Device.Category;
 using Shared.Phone.UserCenter;
 
 namespace Shared.Phone.Device.CommonForm
diff --git a/ZigbeeApp/Shared/Phone/Device/DeviceLogic/ReadDeviceAttributeLogic.cs b/ZigbeeApp/Shared/Phone/Device/DeviceLogic/ReadDeviceAttributeLogic.cs
deleted file mode 100755
index 0515eab..0000000
--- a/ZigbeeApp/Shared/Phone/Device/DeviceLogic/ReadDeviceAttributeLogic.cs
+++ /dev/null
@@ -1,324 +0,0 @@
-锘縰sing System;
-using ZigBee.Device;
-
-namespace Shared.Phone.Device.DeviceLogic
-{
-    public class ReadDeviceAttributeLogic
-    {
-        #region 鈼� 鍙橀噺____________________________
-        /// <summary>
-        /// ReadDeviceAttributeLogic
-        /// </summary>
-        private static ReadDeviceAttributeLogic _instance;
-        /// <summary>
-        /// ReadDeviceAttributeLogic
-        /// </summary>
-        public static ReadDeviceAttributeLogic Instance
-        {
-            get
-            {
-                if(_instance == null)
-                {
-                    _instance = new ReadDeviceAttributeLogic();
-                }
-                return _instance;
-            }
-        }
-
-        #endregion
-
-        #region 鈼� 绌鸿皟____________________________
-
-        /// <summary>
-        /// SendACStatuComand
-        /// </summary>
-        /// <param name="device">璁惧</param>
-        public void SendACStatuComand(CommonDevice device)
-        {
-            if (device == null)
-            {
-                return;
-            }
-            new System.Threading.Thread(() =>
-            {
-                SendFanStatuComand(device);
-                System.Threading.Thread.Sleep(300);
-                SendThermostatStatuComand(device);
-            })
-            { IsBackground = true }.Start();
-        }
-
-        /// <summary>
-        /// SendThermostatStatuComand
-        /// </summary>
-        /// <param name="device">璁惧</param>
-        public void SendThermostatStatuComand(CommonDevice device)
-        {
-            if (device == null)
-            {
-                return;
-            }
-            var jObject = new Newtonsoft.Json.Linq.JObject
-            {
-                { "DeviceAddr",device.DeviceAddr },
-                { "Epoint", device.DeviceEpoint },
-                { "Cluster_ID", (int)Cluster_ID.Thermostat },
-                { "Command", 108 }
-            };
-            var attriBute = new Newtonsoft.Json.Linq.JArray
-            {
-               new Newtonsoft.Json.Linq.JObject
-               {
-                 { "AttriButeId", (int)AttriButeId.LocalTemperature}
-               },
-               new Newtonsoft.Json.Linq.JObject
-               {
-                 { "AttriButeId", (int)AttriButeId.CoolingSetpoint}
-               },
-               new Newtonsoft.Json.Linq.JObject
-               {
-                 { "AttriButeId", (int)AttriButeId.HeatingSetpoint}
-               },
-               new Newtonsoft.Json.Linq.JObject
-               {
-                 { "AttriButeId", (int)AttriButeId.AutoSetpoint}
-               },
-               new Newtonsoft.Json.Linq.JObject
-               {
-                 { "AttriButeId", (int)AttriButeId.SystemMode}
-               },
-               new Newtonsoft.Json.Linq.JObject
-               {
-                 { "AttriButeId", (int)AttriButeId.AcModeSupport}
-               },
-               new Newtonsoft.Json.Linq.JObject
-               {
-                 { "AttriButeId", (int)AttriButeId.CleanStatu}
-               }
-            };
-            var data = new Newtonsoft.Json.Linq.JObject { { "AttriBute", attriBute } };
-            jObject.Add("Data", data);
-            device.Gateway?.Send(("GetDeviceStatus"), jObject.ToString());
-        }
-
-        /// <summary>
-        /// SendFanStatuComand
-        /// </summary>
-        /// <param name="device">璁惧</param>
-        private void SendFanStatuComand(CommonDevice device)
-        {
-            if (device == null)
-            {
-                return;
-            }
-            var jObject = new Newtonsoft.Json.Linq.JObject
-            {
-                { "DeviceAddr",device.DeviceAddr },
-                { "Epoint", device.DeviceEpoint },
-                { "Cluster_ID", (int)Cluster_ID.FanControl },
-                { "Command", 108 }
-            };
-            var attriBute = new Newtonsoft.Json.Linq.JArray
-            {
-               new Newtonsoft.Json.Linq.JObject
-               {
-                 { "AttriButeId", (int)AttriButeId.FanMode}
-               },
-               new Newtonsoft.Json.Linq.JObject
-               {
-                 { "AttriButeId", (int)AttriButeId.FanSwing}
-               }
-            };
-            var data = new Newtonsoft.Json.Linq.JObject { { "AttriBute", attriBute } };
-            jObject.Add("Data", data);
-            device.Gateway?.Send("GetDeviceStatus", jObject.ToString());
-        }
-
-        #endregion
-
-        #region 鈼� 绐楀笜____________________________
-        /// <summary>
-        /// 鍙戦�佽幏鍙栫獥甯樼姸鎬佸懡浠�
-        /// </summary>
-        /// <param name="device">绐楀笜</param>
-        public void SendCurtainStatuComand(CommonDevice device)
-        {
-            if (device == null)
-            {
-                return;
-            }
-            var jObject = new Newtonsoft.Json.Linq.JObject
-            {
-                { "DeviceAddr",device.DeviceAddr },
-                { "Epoint", device.DeviceEpoint },
-                { "Cluster_ID", (int)Cluster_ID.WindowCovering },
-                { "Command", 108 }
-            };
-            var attriBute = new Newtonsoft.Json.Linq.JArray
-            {
-               new Newtonsoft.Json.Linq.JObject
-               {
-                 { "AttriButeId", (int)AttriButeId.CurrentPositionLiftPercentage}
-               }
-            };
-            var data = new Newtonsoft.Json.Linq.JObject { { "AttriBute", attriBute } };
-            jObject.Add("Data", data);
-            device.Gateway?.Send(("GetDeviceStatus"), jObject.ToString());
-        }
-
-        #endregion
-
-        #region 鈼� 鐏厜____________________________
-
-        /// <summary>
-        /// Light
-        /// </summary>
-        /// <param name="device"></param>
-        public void SendLightStatuComand(CommonDevice device)
-        {
-            SendSwitchStatuComand(device);
-        }
-
-        /// <summary>
-        /// Light
-        /// </summary>
-        /// <param name="device"></param>
-        public void SendDimmableLightStatuComand(CommonDevice device)
-        {
-            if (device == null)
-            {
-                return;
-            }
-            new System.Threading.Thread(() =>
-            {
-                SendSwitchStatuComand(device);
-                System.Threading.Thread.Sleep(300);
-                SendLevelStatuComand(device);
-            })
-            { IsBackground = true }.Start();
-        }
-
-        /// <summary>
-        /// 鍙戦�佽幏鍙栫伅鍏夌姸鎬佸懡浠�
-        /// </summary>
-        /// <param name="device">绐楀笜</param>
-        private void SendSwitchStatuComand(CommonDevice device)
-        {
-            if (device == null)
-            {
-                return;
-            }
-            var jObject = new Newtonsoft.Json.Linq.JObject
-            {
-                { "DeviceAddr",device.DeviceAddr },
-                { "Epoint", device.DeviceEpoint },
-                { "Cluster_ID", (int)Cluster_ID.Switch },
-                { "Command", 108 }
-            };
-            var attriBute = new Newtonsoft.Json.Linq.JArray
-            {
-               new Newtonsoft.Json.Linq.JObject
-               {
-                 { "AttriButeId", (int)AttriButeId.Switch}
-               }
-            };
-            var data = new Newtonsoft.Json.Linq.JObject { { "AttriBute", attriBute } };
-            jObject.Add("Data", data);
-            device.Gateway?.Send(("GetDeviceStatus"), jObject.ToString());
-        }
-
-        /// <summary>
-        /// 鍙戦�佽幏鍙栫伅鍏夌姸鎬佸懡浠�
-        /// </summary>
-        /// <param name="device">绐楀笜</param>
-        private void SendLevelStatuComand(CommonDevice device)
-        {
-            if (device == null)
-            {
-                return;
-            }
-            var jObject = new Newtonsoft.Json.Linq.JObject
-            {
-                { "DeviceAddr",device.DeviceAddr },
-                { "Epoint", device.DeviceEpoint },
-                { "Cluster_ID", (int)Cluster_ID.LevelControl },
-                { "Command", 108 }
-            };
-            var attriBute = new Newtonsoft.Json.Linq.JArray
-            {
-               new Newtonsoft.Json.Linq.JObject
-               {
-                 { "AttriButeId", (int)AttriButeId.LevelControl}
-               }
-            };
-            var data = new Newtonsoft.Json.Linq.JObject { { "AttriBute", attriBute } };
-            jObject.Add("Data", data);
-            device.Gateway?.Send(("GetDeviceStatus"), jObject.ToString());
-        }
-
-        #endregion
-
-        #region 鈼� 娓╂箍搴___________________________
-
-        /// <summary>
-        /// 璇诲彇娓╁害
-        /// </summary>
-        /// <param name="device"></param>
-        public void SendTemperatureStatuComand(CommonDevice device)
-        {
-            if (device == null)
-            {
-                return;
-            }
-            var jObject = new Newtonsoft.Json.Linq.JObject
-            {
-                { "DeviceAddr",device.DeviceAddr },
-                { "Epoint", device.DeviceEpoint },
-                { "Cluster_ID", (int)Cluster_ID.TemperatureMeasurement },
-                { "Command", 108 }
-            };
-            var attriBute = new Newtonsoft.Json.Linq.JArray
-            {
-               new Newtonsoft.Json.Linq.JObject
-               {
-                 { "AttriButeId", (int)AttriButeId.MeasuredValue}
-               }
-            };
-            var data = new Newtonsoft.Json.Linq.JObject { { "AttriBute", attriBute } };
-            jObject.Add("Data", data);
-            device.Gateway?.Send(("GetDeviceStatus"), jObject.ToString());
-        }
-
-        /// <summary>
-        /// 璇诲彇婀垮害
-        /// </summary>
-        /// <param name="device"></param>
-        public void SendHumidityStatuComand(CommonDevice device)
-        {
-            if (device == null)
-            {
-                return;
-            }
-            var jObject = new Newtonsoft.Json.Linq.JObject
-            {
-                { "DeviceAddr",device.DeviceAddr },
-                { "Epoint", device.DeviceEpoint },
-                { "Cluster_ID", (int)Cluster_ID.RelativeHumidityMeasurement },
-                { "Command", 108 }
-            };
-            var attriBute = new Newtonsoft.Json.Linq.JArray
-            {
-               new Newtonsoft.Json.Linq.JObject
-               {
-                 { "AttriButeId", (int)AttriButeId.MeasuredValue}
-               }
-            };
-            var data = new Newtonsoft.Json.Linq.JObject { { "AttriBute", attriBute } };
-            jObject.Add("Data", data);
-            device.Gateway?.Send(("GetDeviceStatus"), jObject.ToString());
-        }
-
-        #endregion
-
-    }
-}
diff --git a/ZigbeeApp/Shared/Phone/Device/Logic/CurrentDeviceState.cs b/ZigbeeApp/Shared/Phone/Device/Logic/CurrentDeviceState.cs
index 5ccee7d..8dbb478 100755
--- a/ZigbeeApp/Shared/Phone/Device/Logic/CurrentDeviceState.cs
+++ b/ZigbeeApp/Shared/Phone/Device/Logic/CurrentDeviceState.cs
@@ -535,7 +535,7 @@
                             Send.dictionary(deviceConditionsInfo, "Cluster_ID", "1026");
                             Send.dictionary(deviceConditionsInfo, "AttriButeId", "0");
                             Send.dictionary(deviceConditionsInfo, "Range", "1");//1:绛変簬AttriButeData1鏃惰Е鍙戝姩浣�
-                            Send.dictionary(deviceConditionsInfo, "AttriButeData1", "50");//榛樿娓╁害鍊�50鈩�
+                            Send.dictionary(deviceConditionsInfo, "AttriButeData1", "5000");//榛樿娓╁害鍊�50鈩�
                             Send.dictionary(deviceConditionsInfo, "AttriButeData2", "0");
                         }
                         else
@@ -544,7 +544,7 @@
                             Send.dictionary(deviceConditionsInfo, "Cluster_ID", "1029");
                             Send.dictionary(deviceConditionsInfo, "AttriButeId", "0");
                             Send.dictionary(deviceConditionsInfo, "Range", "1");//1:绛変簬AttriButeData1鏃惰Е鍙戝姩浣�
-                            Send.dictionary(deviceConditionsInfo, "AttriButeData1", "50");//榛樿婀垮害鍊�50%
+                            Send.dictionary(deviceConditionsInfo, "AttriButeData1", "5000");//榛樿婀垮害鍊�50%
                             Send.dictionary(deviceConditionsInfo, "AttriButeData2", "0");
                         }
                         mUIPickerView.setNPicker(mList1, mList2, mList3);
@@ -553,8 +553,10 @@
 
                         mUIPickerView.OnSelectChangeEvent += (s1, s2, s3) =>
                         {
+                            ///娓╁害杩涚巼杞崲*100
+                            var strValue = (int.Parse(mList2[s2]) * 100).ToString();
                             SelectedDeviceStatus = "TemperatureSensor";
-                            Send.dictionary(deviceConditionsInfo, "AttriButeData1", mList2[s2]);
+                            Send.dictionary(deviceConditionsInfo, "AttriButeData1", strValue);
                             switch (mList1[s1])
                             {
                                 case ">":
@@ -620,8 +622,10 @@
                                     break;
                             }
                             //鏌ユ壘绱㈠紩
-                            index1 = mList1.IndexOf(s);
-                            index2 = mList2.IndexOf(devices["AttriButeData1"]);
+                            index1 = mList1.IndexOf(s);
+                            //杞崲娓╁害鍊�/100
+                            var dd = (int.Parse(devices["AttriButeData1"])/100).ToString();
+                            index2 = mList2.IndexOf(dd);
 
                         }
                         ///鏇存柊鏈�鏂扮姸鎬侊紱
diff --git a/ZigbeeApp/Shared/Phone/Device/Logic/LogicCommunalPage.cs b/ZigbeeApp/Shared/Phone/Device/Logic/LogicCommunalPage.cs
index 837877f..97b170b 100755
--- a/ZigbeeApp/Shared/Phone/Device/Logic/LogicCommunalPage.cs
+++ b/ZigbeeApp/Shared/Phone/Device/Logic/LogicCommunalPage.cs
@@ -499,16 +499,18 @@
                                                         s = "鈮�";
                                                     }
                                                     break;
-                                            }
+                                            }
+                                            ///杞崲娓╁害鍊�/100
+                                            string srtValue = (int.Parse(conditions["AttriButeData1"]) / 100).ToString();
                                             if (conditions["Cluster_ID"] == "1026")
                                             {
                                                 icon = "ZigeeLogic/temperature.png";
-                                                state = s + conditions["AttriButeData1"] + "鈩�";
+                                                state = s + srtValue + "鈩�";
                                             }
                                             else
                                             {
                                                 icon = "ZigeeLogic/humidity.png";
-                                                state = s + conditions["AttriButeData1"] + "%";
+                                                state = s + srtValue + "%";
                                             }
                                             break;
 
diff --git a/ZigbeeApp/Shared/Phone/Device/Logic/OneLogic.cs b/ZigbeeApp/Shared/Phone/Device/Logic/OneLogic.cs
index b470b06..866f354 100755
--- a/ZigbeeApp/Shared/Phone/Device/Logic/OneLogic.cs
+++ b/ZigbeeApp/Shared/Phone/Device/Logic/OneLogic.cs
@@ -333,7 +333,7 @@
 
         }
         /// <summary>
-        /// 閫変腑璇ヨ澶囧姛鑳戒綔涓烘潯浠舵垨鑰呯洰鏍囩殑瑙嗗浘鏂规硶
+        /// 閫変腑璇ヤ綔涓烘潯浠舵垨鑰呯洰鏍囩殑瑙嗗浘鏂规硶
         /// </summary>
         /// <param name="common">Common.</param>
          void DevcieView( CommonDevice common,Button button)
@@ -371,7 +371,7 @@
             Dictionary<string, object> actionsInfo = new Dictionary<string, object>();
             actionsInfo.Add("LinkType", 8);
             actionsInfo.Add("DeviceAddr", common.DeviceAddr);
-            actionsInfo.Add("Epoint", common.DeviceEpoint);
+            actionsInfo.Add("Epoint","200");
             string SelectedDeviceStatus = "";
             switch (common.Type)
             {
diff --git a/ZigbeeApp/Shared/Phone/Device/Logic/SkipView.cs b/ZigbeeApp/Shared/Phone/Device/Logic/SkipView.cs
index d06d4eb..cdccd8b 100755
--- a/ZigbeeApp/Shared/Phone/Device/Logic/SkipView.cs
+++ b/ZigbeeApp/Shared/Phone/Device/Logic/SkipView.cs
@@ -83,7 +83,7 @@
                         Dictionary<string, object> actionsInfo = new Dictionary<string, object>();
                         actionsInfo.Add("LinkType", 8);
                         actionsInfo.Add("DeviceAddr", doorLock.DeviceAddr);
-                        actionsInfo.Add("Epoint", doorLock.DeviceEpoint);
+                        actionsInfo.Add("Epoint", "200");
                         actionsInfo.Add("PassData", "055704010113");//榛樿闂ㄩ攣甯稿叧
 
                         //new涓�涓柊閫昏緫瀵硅薄锛�
diff --git a/ZigbeeApp/Shared/Phone/Login/PhoneZone.cs b/ZigbeeApp/Shared/Phone/Login/PhoneZone.cs
index a9e1ac4..e91aa2e 100755
--- a/ZigbeeApp/Shared/Phone/Login/PhoneZone.cs
+++ b/ZigbeeApp/Shared/Phone/Login/PhoneZone.cs
@@ -184,15 +184,16 @@
             };
             phoneZoneSelectedShowView.AddChidren(phoneZoneListView);
 
-            var okBtn = new CommonForm.CompleteButton(1166, 668, 127);
-            phoneZoneSelectedShowView.AddChidren(okBtn);
-            okBtn.MouseUpEventHandler += (sender, e) =>
+            var btnOk = new UserCenter.BottomClickButton(668);
+            btnOk.Y = Application.GetRealHeight(1166);
+            btnOk.TextID = R.MyInternationalizationString.Complete;
+            phoneZoneSelectedShowView.AddChidren(btnOk);
+            btnOk.ButtonClickEvent += (sender, e) =>
             {
                 ActionSelectedZone?.Invoke(CommonPage.PhoneZoneStr);
                 ActionSelectedZone = null;
                 RemoveFromParent();
             };
-            phoneZoneSelectedShowView.AddChidren(okBtn);
             var cancleBtn = new Button()
             {
                 Y = Application.GetRealHeight(1719),
diff --git a/ZigbeeApp/Shared/Phone/MainPage/ControlForm/DeviceAcDetailCardForm.cs b/ZigbeeApp/Shared/Phone/MainPage/ControlForm/DeviceAcDetailCardForm.cs
index 9631854..6b371cf 100755
--- a/ZigbeeApp/Shared/Phone/MainPage/ControlForm/DeviceAcDetailCardForm.cs
+++ b/ZigbeeApp/Shared/Phone/MainPage/ControlForm/DeviceAcDetailCardForm.cs
@@ -1,5 +1,4 @@
 锘縰sing Shared.Common;
-using Shared.Phone.Device.AC;
 using Shared.Phone.UserCenter;
 using System;
 using System.Collections.Generic;
@@ -71,7 +70,7 @@
             this.deviceAc = (AC)this.device;
             //鍏堟竻绌�
             this.listControl = new List<ButtonBase>();
-            if (device.HadReadDeviceStatu == true && ACControlBase.IsOpen(deviceAc) == true)
+            if (device.HadReadDeviceStatu == true && DeviceAcDetailCardMethord.IsOpen(deviceAc) == true)
             {
                 //璁剧疆鐘舵�佹枃瀛� 褰撳墠瀹ゆ俯
                 this.SetStatuText(deviceAc.currentLocalTemperature + "鈩�");
@@ -113,7 +112,7 @@
         /// <param name="frameWhiteBack"></param>
         private void InitAcControl(FrameLayout frameWhiteBack)
         {
-            bool isAcOpen = ACControlBase.IsOpen(deviceAc);
+            bool isAcOpen = DeviceAcDetailCardMethord.IsOpen(deviceAc);
 
             //绌鸿皟鎺т欢鐨勫鍣�
             var frameAcBack = new FrameLayout();
@@ -123,7 +122,7 @@
             frameAcBack.Gravity = Gravity.CenterHorizontal;
             frameWhiteBack.AddChidren(frameAcBack);
 
-            this.nowProgressValue = ACControlBase.GetCurrentModeTemperature(deviceAc);
+            this.nowProgressValue = DeviceAcDetailCardMethord.GetCurrentModeTemperature(deviceAc);
             if (nowProgressValue < 16) { nowProgressValue = 16; }
             if (nowProgressValue > 32) { nowProgressValue = 32; }
             //绌鸿皟鎺т欢
@@ -149,7 +148,7 @@
             this.btnNowModeView = new NormalViewControl(200, 55, true);
             btnNowModeView.Y = Application.GetMinRealAverage(184);
             btnNowModeView.Gravity = Gravity.CenterHorizontal;
-            btnNowModeView.Text = ACControlBase.GetModeNameByModeId(deviceAc.currentSystemMode);
+            btnNowModeView.Text = DeviceAcDetailCardMethord.GetModeNameByModeId(deviceAc.currentSystemMode);
             btnNowModeView.TextSize = 12;
             btnNowModeView.TextAlignment = TextAlignment.Center;
             frameAcBack.AddChidren(btnNowModeView);
@@ -219,14 +218,14 @@
 
                 btnFanSwingMode.X = XX;
                 btnFanSwingMode.Y = YY;
-                btnFanSwingMode.UnSelectedImagePath = ACControlBase.GetFanSwingModeUnSelectedImagePathByFanSwingModeId(deviceAc.currentFanSwingMode);
-                btnFanSwingMode.SelectedImagePath = ACControlBase.GetFanSwingModeSelectedImagePathByFanSwingModeId(deviceAc.currentFanSwingMode);
+                btnFanSwingMode.UnSelectedImagePath = DeviceAcDetailCardMethord.GetFanSwingModeUnSelectedImagePathByFanSwingModeId(deviceAc.currentFanSwingMode);
+                btnFanSwingMode.SelectedImagePath = DeviceAcDetailCardMethord.GetFanSwingModeSelectedImagePathByFanSwingModeId(deviceAc.currentFanSwingMode);
                 btnFanSwingMode.IsSelected = isAcOpen;
                 frameWhiteBack.AddChidren(btnFanSwingMode);
                 btnFanSwingMode.ButtonClickEvent += (sender, e) =>
                 {
                     //绌鸿皟鎵撳紑鐘舵�佹墠鑳界偣鍑�
-                    if (ACControlBase.IsOpen(deviceAc) == true)
+                    if (DeviceAcDetailCardMethord.IsOpen(deviceAc) == true)
                     {
                         //閫夋嫨鎽嗛
                         this.SelectFanSwing(frameWhiteBack);
@@ -241,8 +240,8 @@
             var btnModel = new IconViewControl(81);
             btnModel.X = XX;
             btnModel.Y = YY;
-            btnModel.UnSelectedImagePath = ACControlBase.GetModeUnSelectedImagePathByModeId(deviceAc.currentSystemMode);
-            btnModel.SelectedImagePath = ACControlBase.GetModeSelectedImagePathByModeId(deviceAc.currentSystemMode);
+            btnModel.UnSelectedImagePath = DeviceAcDetailCardMethord.GetModeUnSelectedImagePathByModeId(deviceAc.currentSystemMode);
+            btnModel.SelectedImagePath = DeviceAcDetailCardMethord.GetModeSelectedImagePathByModeId(deviceAc.currentSystemMode);
             btnModel.IsSelected = isAcOpen;
             frameWhiteBack.AddChidren(btnModel);
             XX = btnModel.Right + IconSpace;
@@ -250,7 +249,7 @@
             btnModel.ButtonClickEvent += (sender, e) =>
             {
                 //绌鸿皟鎵撳紑鐘舵�佹墠鑳界偣鍑�
-                if (ACControlBase.IsOpen(deviceAc) == true)
+                if (DeviceAcDetailCardMethord.IsOpen(deviceAc) == true)
                 {
                     //閫夋嫨妯″紡
                     this.SelectAcModel(frameWhiteBack);
@@ -276,15 +275,15 @@
             var btnFanMode = new IconViewControl(81);
             btnFanMode.X = XX;
             btnFanMode.Y = YY;
-            btnFanMode.UnSelectedImagePath = ACControlBase.GetFanModeUnSelectedImagePathByFanModeId(deviceAc.currentFanMode);
-            btnFanMode.SelectedImagePath = ACControlBase.GetFanModeSelectedImagePathByFanModeId(deviceAc.currentFanMode);
+            btnFanMode.UnSelectedImagePath = DeviceAcDetailCardMethord.GetFanModeUnSelectedImagePathByFanModeId(deviceAc.currentFanMode);
+            btnFanMode.SelectedImagePath = DeviceAcDetailCardMethord.GetFanModeSelectedImagePathByFanModeId(deviceAc.currentFanMode);
             btnFanMode.IsSelected = isAcOpen;
             frameWhiteBack.AddChidren(btnFanMode);
             this.listControl.Add(btnFanMode);
             btnFanMode.ButtonClickEvent += (sender, e) =>
             {
                 //绌鸿皟鎵撳紑鐘舵�佹墠鑳界偣鍑�
-                if (ACControlBase.IsOpen(deviceAc) == true)
+                if (DeviceAcDetailCardMethord.IsOpen(deviceAc) == true)
                 {
                     //閫夋嫨妯″紡
                     this.SelectAcWindSpeed(frameWhiteBack);
@@ -496,14 +495,14 @@
                     HdlThreadLogic.Current.RunMain(() =>
                     {
                         //杩樺師鐘舵��
-                        listControl[0].SelectedImagePath = ACControlBase.GetFanSwingModeSelectedImagePathByFanSwingMode(oldModel);
-                        listControl[0].UnSelectedImagePath = ACControlBase.GetFanSwingModeUnSelectedImagePathByFanSwingMode(oldModel);
+                        listControl[0].SelectedImagePath = DeviceAcDetailCardMethord.GetFanSwingModeSelectedImagePathByFanSwingMode(oldModel);
+                        listControl[0].UnSelectedImagePath = DeviceAcDetailCardMethord.GetFanSwingModeUnSelectedImagePathByFanSwingMode(oldModel);
                     });
                 }
             });
 
-            listControl[0].SelectedImagePath = ACControlBase.GetFanSwingModeSelectedImagePathByFanSwingMode(fanSwingMode);
-            listControl[0].UnSelectedImagePath = ACControlBase.GetFanSwingModeUnSelectedImagePathByFanSwingMode(fanSwingMode);
+            listControl[0].SelectedImagePath = DeviceAcDetailCardMethord.GetFanSwingModeSelectedImagePathByFanSwingMode(fanSwingMode);
+            listControl[0].UnSelectedImagePath = DeviceAcDetailCardMethord.GetFanSwingModeUnSelectedImagePathByFanSwingMode(fanSwingMode);
 
             deviceAc.SetFanSwingAsyncMode(fanSwingMode);
         }
@@ -655,8 +654,8 @@
                     HdlThreadLogic.Current.RunMain(() =>
                     {
                         //杩樺師鐘舵��
-                        listControl[1].SelectedImagePath = ACControlBase.GetModeSelectedImagePathByMode(oldModel);
-                        listControl[1].UnSelectedImagePath = ACControlBase.GetModeUnSelectedImagePathByMode(oldModel);
+                        listControl[1].SelectedImagePath = DeviceAcDetailCardMethord.GetModeSelectedImagePathByMode(oldModel);
+                        listControl[1].UnSelectedImagePath = DeviceAcDetailCardMethord.GetModeUnSelectedImagePathByMode(oldModel);
                     });
                 }
                 else
@@ -686,8 +685,8 @@
                 }
             });
 
-            listControl[1].SelectedImagePath = ACControlBase.GetModeSelectedImagePathByMode(mode);
-            listControl[1].UnSelectedImagePath = ACControlBase.GetModeUnSelectedImagePathByMode(mode);
+            listControl[1].SelectedImagePath = DeviceAcDetailCardMethord.GetModeSelectedImagePathByMode(mode);
+            listControl[1].UnSelectedImagePath = DeviceAcDetailCardMethord.GetModeUnSelectedImagePathByMode(mode);
 
             deviceAc.SetSystemModeAsync(mode);
         }
@@ -880,14 +879,14 @@
                     HdlThreadLogic.Current.RunMain(() =>
                     {
                         //杩樺師鐘舵��
-                        listControl[3].SelectedImagePath = ACControlBase.GetFanModeSelectedImagePathByFanMode(oldModel);
-                        listControl[3].UnSelectedImagePath = ACControlBase.GetFanModeSelectedImagePathByFanMode(oldModel);
+                        listControl[3].SelectedImagePath = DeviceAcDetailCardMethord.GetFanModeSelectedImagePathByFanMode(oldModel);
+                        listControl[3].UnSelectedImagePath = DeviceAcDetailCardMethord.GetFanModeSelectedImagePathByFanMode(oldModel);
                     });
                 }
             });
 
-            listControl[3].SelectedImagePath = ACControlBase.GetFanModeSelectedImagePathByFanMode(mode);
-            listControl[3].UnSelectedImagePath = ACControlBase.GetFanModeSelectedImagePathByFanMode(mode);
+            listControl[3].SelectedImagePath = DeviceAcDetailCardMethord.GetFanModeSelectedImagePathByFanMode(mode);
+            listControl[3].UnSelectedImagePath = DeviceAcDetailCardMethord.GetFanModeSelectedImagePathByFanMode(mode);
 
             deviceAc.SetFanModeAsync(mode);
         }
@@ -1008,11 +1007,11 @@
                                         arcScaleSeekBar.SetProgressBarColors(ZigbeeColor.Current.GXCArcScaleSeekBarStartColor, ZigbeeColor.Current.GXCArcScaleSeekBarEndColor);
                                     }
                                 }
-                                this.listControl[1].SelectedImagePath = ACControlBase.GetModeSelectedImagePathByModeId(deviceAc.currentSystemMode);
-                                this.listControl[1].UnSelectedImagePath = ACControlBase.GetModeUnSelectedImagePathByModeId(deviceAc.currentSystemMode);
-                                this.btnNowModeView.Text = ACControlBase.GetModeNameByModeId(deviceAc.currentSystemMode);
-                                arcScaleSeekBar.Progress = ACControlBase.GetCurrentModeTemperature(deviceAc);
-                                arcScaleSeekBar.IsClickable = ACControlBase.IsOpen(deviceAc);
+                                this.listControl[1].SelectedImagePath = DeviceAcDetailCardMethord.GetModeSelectedImagePathByModeId(deviceAc.currentSystemMode);
+                                this.listControl[1].UnSelectedImagePath = DeviceAcDetailCardMethord.GetModeUnSelectedImagePathByModeId(deviceAc.currentSystemMode);
+                                this.btnNowModeView.Text = DeviceAcDetailCardMethord.GetModeNameByModeId(deviceAc.currentSystemMode);
+                                arcScaleSeekBar.Progress = DeviceAcDetailCardMethord.GetCurrentModeTemperature(deviceAc);
+                                arcScaleSeekBar.IsClickable = DeviceAcDetailCardMethord.IsOpen(deviceAc);
                                 //璁剧疆鐘舵�佹枃瀛� 褰撳墠瀹ゆ俯
                                 this.SetStatuText(deviceAc.currentLocalTemperature + "鈩�");
                                 //閫侀娌℃湁娓╁害鐨勬蹇�
@@ -1050,8 +1049,8 @@
                                 {
                                     this.listControl[3].IsSelected = true;
                                 }
-                                this.listControl[3].SelectedImagePath = ACControlBase.GetFanModeSelectedImagePathByFanModeId(deviceAc.currentFanMode);
-                                this.listControl[3].UnSelectedImagePath = ACControlBase.GetFanModeUnSelectedImagePathByFanModeId(deviceAc.currentFanMode);
+                                this.listControl[3].SelectedImagePath = DeviceAcDetailCardMethord.GetFanModeSelectedImagePathByFanModeId(deviceAc.currentFanMode);
+                                this.listControl[3].UnSelectedImagePath = DeviceAcDetailCardMethord.GetFanModeUnSelectedImagePathByFanModeId(deviceAc.currentFanMode);
                             });
                             //宸茬粡鎺ユ敹鍒扮綉鍏崇殑鍙嶉
                             return true;
@@ -1065,8 +1064,8 @@
                                 {
                                     this.listControl[0].IsSelected = true;
                                 }
-                                this.listControl[0].SelectedImagePath = ACControlBase.GetFanSwingModeSelectedImagePathByFanSwingModeId(deviceAc.currentFanSwingMode);
-                                this.listControl[0].UnSelectedImagePath = ACControlBase.GetFanSwingModeUnSelectedImagePathByFanSwingModeId(deviceAc.currentFanSwingMode);
+                                this.listControl[0].SelectedImagePath = DeviceAcDetailCardMethord.GetFanSwingModeSelectedImagePathByFanSwingModeId(deviceAc.currentFanSwingMode);
+                                this.listControl[0].UnSelectedImagePath = DeviceAcDetailCardMethord.GetFanSwingModeUnSelectedImagePathByFanSwingModeId(deviceAc.currentFanSwingMode);
                             });
                             //宸茬粡鎺ユ敹鍒扮綉鍏崇殑鍙嶉
                             return true;
diff --git a/ZigbeeApp/Shared/Phone/Device/AC/ACControlBase.cs b/ZigbeeApp/Shared/Phone/MainPage/ControlForm/DeviceAcDetailCardMethord.cs
similarity index 98%
rename from ZigbeeApp/Shared/Phone/Device/AC/ACControlBase.cs
rename to ZigbeeApp/Shared/Phone/MainPage/ControlForm/DeviceAcDetailCardMethord.cs
index d30aff2..f421dd9 100755
--- a/ZigbeeApp/Shared/Phone/Device/AC/ACControlBase.cs
+++ b/ZigbeeApp/Shared/Phone/MainPage/ControlForm/DeviceAcDetailCardMethord.cs
@@ -1,7 +1,10 @@
 锘縰sing System;
-namespace Shared.Phone.Device.AC
+namespace Shared.Phone.MainPage.ControlForm
 {
-    public class ACControlBase
+    /// <summary>
+    /// 閮洩鍩庣殑绌鸿皟娣卞害鍗$墖鐨勫悇绉嶆柟娉�
+    /// </summary>
+    public class DeviceAcDetailCardMethord
     {
         #region 鈼� 鍙橀噺_____________________________
         /// <summary>
diff --git a/ZigbeeApp/Shared/Phone/MainPage/ControlForm/DeviceColorLightDetailCardForm.cs b/ZigbeeApp/Shared/Phone/MainPage/ControlForm/DeviceColorLightDetailCardForm.cs
index 53a0bff..de15ae1 100755
--- a/ZigbeeApp/Shared/Phone/MainPage/ControlForm/DeviceColorLightDetailCardForm.cs
+++ b/ZigbeeApp/Shared/Phone/MainPage/ControlForm/DeviceColorLightDetailCardForm.cs
@@ -1,5 +1,4 @@
 锘縰sing Shared.Common;
-using Shared.Phone.Device.DeviceLogic;
 using Shared.Phone.UserCenter;
 using System;
 using System.Collections.Generic;
diff --git a/ZigbeeApp/Shared/Phone/MainPage/Controls/DeviceCard/DeviceAcCardControl.cs b/ZigbeeApp/Shared/Phone/MainPage/Controls/DeviceCard/DeviceAcCardControl.cs
index 7094af3..91fb30f 100755
--- a/ZigbeeApp/Shared/Phone/MainPage/Controls/DeviceCard/DeviceAcCardControl.cs
+++ b/ZigbeeApp/Shared/Phone/MainPage/Controls/DeviceCard/DeviceAcCardControl.cs
@@ -1,4 +1,5 @@
-锘縰sing System;
+锘縰sing Shared.Phone.UserCenter;
+using System;
 using System.Collections.Generic;
 using System.Text;
 using ZigBee.Device;
@@ -95,7 +96,7 @@
             //妫�娴嬭兘鍚﹀彂閫佽幏鍙栫姸鎬佸懡浠�
             if (this.CheckCanSendStatuComand() == true)
             {
-                Device.DeviceLogic.ReadDeviceAttributeLogic.Instance.SendACStatuComand(this.device);
+                HdlDeviceAttributeLogic.Current.SendACStatuComand(this.device);
             }
         }
 
diff --git a/ZigbeeApp/Shared/Phone/MainPage/Controls/DeviceCard/DeviceAirSwitchCardControl.cs b/ZigbeeApp/Shared/Phone/MainPage/Controls/DeviceCard/DeviceAirSwitchCardControl.cs
index 59f0a9a..9502ec5 100755
--- a/ZigbeeApp/Shared/Phone/MainPage/Controls/DeviceCard/DeviceAirSwitchCardControl.cs
+++ b/ZigbeeApp/Shared/Phone/MainPage/Controls/DeviceCard/DeviceAirSwitchCardControl.cs
@@ -1,4 +1,5 @@
-锘縰sing System;
+锘縰sing Shared.Phone.UserCenter;
+using System;
 using System.Collections.Generic;
 using System.Text;
 using ZigBee.Device;
@@ -109,7 +110,7 @@
             //妫�娴嬭兘鍚﹀彂閫佽幏鍙栫姸鎬佸懡浠�
             if (this.CheckCanSendStatuComand() == true)
             {
-                Device.DeviceLogic.ReadDeviceAttributeLogic.Instance.SendLightStatuComand(this.device);
+                HdlDeviceAttributeLogic.Current.SendLightStatuComand(this.device);
             }
         }
 
diff --git a/ZigbeeApp/Shared/Phone/MainPage/Controls/DeviceCard/DeviceColorLightCardControl.cs b/ZigbeeApp/Shared/Phone/MainPage/Controls/DeviceCard/DeviceColorLightCardControl.cs
index 46e3cf1..757165b 100755
--- a/ZigbeeApp/Shared/Phone/MainPage/Controls/DeviceCard/DeviceColorLightCardControl.cs
+++ b/ZigbeeApp/Shared/Phone/MainPage/Controls/DeviceCard/DeviceColorLightCardControl.cs
@@ -1,4 +1,5 @@
-锘縰sing System;
+锘縰sing Shared.Phone.UserCenter;
+using System;
 using System.Collections.Generic;
 using System.Text;
 using ZigBee.Device;
@@ -95,7 +96,7 @@
             //妫�娴嬭兘鍚﹀彂閫佽幏鍙栫姸鎬佸懡浠�
             if (this.CheckCanSendStatuComand() == true)
             {
-                Device.DeviceLogic.ReadDeviceAttributeLogic.Instance.SendDimmableLightStatuComand(this.device);
+               HdlDeviceAttributeLogic.Current.SendDimmableLightStatuComand(this.device);
             }
         }
 
diff --git a/ZigbeeApp/Shared/Phone/MainPage/Controls/DeviceCard/DeviceCurtainCardControl.cs b/ZigbeeApp/Shared/Phone/MainPage/Controls/DeviceCard/DeviceCurtainCardControl.cs
index 533c332..28cfa9e 100755
--- a/ZigbeeApp/Shared/Phone/MainPage/Controls/DeviceCard/DeviceCurtainCardControl.cs
+++ b/ZigbeeApp/Shared/Phone/MainPage/Controls/DeviceCard/DeviceCurtainCardControl.cs
@@ -1,4 +1,5 @@
-锘縰sing System;
+锘縰sing Shared.Phone.UserCenter;
+using System;
 using System.Collections.Generic;
 using System.Text;
 using ZigBee.Device;
@@ -94,7 +95,7 @@
             //妫�娴嬭兘鍚﹀彂閫佽幏鍙栫姸鎬佸懡浠�
             if (this.CheckCanSendStatuComand() == true)
             {
-                Device.DeviceLogic.ReadDeviceAttributeLogic.Instance.SendCurtainStatuComand(this.device);
+                HdlDeviceAttributeLogic.Current.SendCurtainStatuComand(this.device);
             }
             if (((Rollershade)this.device).WcdType == -1)
             {
diff --git a/ZigbeeApp/Shared/Phone/MainPage/Controls/DeviceCard/DeviceRelayCardControl.cs b/ZigbeeApp/Shared/Phone/MainPage/Controls/DeviceCard/DeviceRelayCardControl.cs
index 2b5184e..7c6bdbb 100755
--- a/ZigbeeApp/Shared/Phone/MainPage/Controls/DeviceCard/DeviceRelayCardControl.cs
+++ b/ZigbeeApp/Shared/Phone/MainPage/Controls/DeviceCard/DeviceRelayCardControl.cs
@@ -1,4 +1,5 @@
-锘縰sing System;
+锘縰sing Shared.Phone.UserCenter;
+using System;
 using System.Collections.Generic;
 using System.Text;
 using ZigBee.Device;
@@ -109,7 +110,7 @@
             //妫�娴嬭兘鍚﹀彂閫佽幏鍙栫姸鎬佸懡浠�
             if (this.CheckCanSendStatuComand() == true)
             {
-                Device.DeviceLogic.ReadDeviceAttributeLogic.Instance.SendLightStatuComand(this.device);
+                HdlDeviceAttributeLogic.Current.SendLightStatuComand(this.device);
             }
         }
 
diff --git a/ZigbeeApp/Shared/Phone/MainPage/Controls/SelectLocalDeviceImageForm.cs b/ZigbeeApp/Shared/Phone/MainPage/Controls/SelectLocalDeviceImageForm.cs
new file mode 100755
index 0000000..3cdfc7b
--- /dev/null
+++ b/ZigbeeApp/Shared/Phone/MainPage/Controls/SelectLocalDeviceImageForm.cs
@@ -0,0 +1,118 @@
+锘縰sing Shared.Phone.UserCenter;
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace Shared.Phone.MainPage.Controls
+{
+    /// <summary>
+    /// 閫夋嫨鏈湴璁惧鍥剧墖鐨勭晫闈�
+    /// </summary>
+    public class SelectLocalDeviceImageForm : EditorCommonForm
+    {
+        #region 鈻� 鍙橀噺澹版槑___________________________
+
+        /// <summary>
+        /// 缁撴潫閫夋嫨鐨勪簨浠�(鍥剧墖鍚嶅瓧)
+        /// </summary>
+        public Action<string> FinishSelectEvent = null;
+
+        #endregion
+
+        #region 鈻� 鍒濆鍖朹____________________________
+
+        /// <summary>
+        /// 鐢婚潰鏄剧ず(搴曞眰浼氬浐瀹氳皟鐢ㄦ鏂规硶锛屽�熶互瀹屾垚鐢婚潰鍒涘缓)
+        /// </summary>
+        public void ShowForm()
+        {
+            //鍒濆鍖栦腑閮ㄤ俊鎭�
+            this.InitMiddleFrame();
+            //璁剧疆澶撮儴淇℃伅
+            base.SetTitleText(Language.StringByID(R.MyInternationalizationString.LocalPicture));
+        }
+
+        /// <summary>
+        /// 鍒濆鍖栦腑閮ㄤ俊鎭�
+        /// </summary>
+        private void InitMiddleFrame()
+        {
+            //娓呯┖bodyFrame
+            this.ClearBodyFrame();
+
+            //鍒楄〃鎺т欢
+            var listView = new VerticalListControl();
+            listView.Height = bodyFrameLayout.Height;
+            bodyFrameLayout.AddChidren(listView);
+
+            int space = this.GetPictrueRealSize(46);
+            int backWidth = (listView.Width - ControlCommonResourse.XXLeft * 2 - space * 3) / 4;
+            //闃叉璇樊锛屽垎涓ゆ璁$畻
+            int iconWidth = backWidth - this.GetPictrueRealSize(43) - this.GetPictrueRealSize(43);
+
+            //涓�鍏�28寮犲浘鐗�
+            FrameLayout frameRow = null;
+            for (int i = 0; i < 28; i++)
+            {
+                //4涓竴缁�
+                if (i % 4 == 0)
+                {
+                    //琛屾帶浠�
+                    frameRow = new FrameLayout();
+                    frameRow.Height = backWidth + Application.GetRealHeight(58);
+                    listView.AddChidren(frameRow);
+                }
+                //鑳屾櫙
+                var frameBack = new FrameLayoutControl();
+                frameBack.UseClickStatu = false;
+                frameBack.Height = backWidth;
+                frameBack.Width = backWidth;
+                frameBack.Radius = (uint)backWidth / 2;
+                frameBack.BackgroundColor = UserCenterColor.Current.White;
+                frameBack.X = ControlCommonResourse.XXLeft + (i % 4) * (backWidth + space);
+                frameBack.Y = Application.GetRealHeight(58);
+                frameRow.AddChidren(frameBack);
+
+                //鍥剧墖
+                var btnIcon = new PicViewControl(iconWidth, iconWidth, false);
+                btnIcon.UnSelectedImagePath = $"FunctionIcon/{i + 1}Icon.png";
+                btnIcon.SelectedImagePath = $"FunctionIcon/{i + 1}IconSelected.png";
+                btnIcon.Gravity = Gravity.Center;
+                frameBack.AddChidren(btnIcon, ChidrenBindMode.BindEventOnly);
+
+                frameBack.ButtonClickEvent += (sender, e) =>
+                {
+                    //缁撴潫閫夋嫨鐨勪簨浠�
+                    //this.FinishSelectEvent?.Invoke(btnIcon.ImagePath);
+                    this.CloseForm();
+                };
+            }
+
+            //淇濆瓨
+            var btnSave = new BottomClickButton();
+            btnSave.TextID = R.MyInternationalizationString.uSave;
+            btnSave.ButtonClickEvent += (sender, e) =>
+            {
+            };
+
+            //璋冩暣妗屽竷楂樺害
+            listView.AdjustRealHeightByBottomButton(Application.GetRealHeight(23));
+        }
+
+        #endregion
+
+        #region 鈻� 鐣岄潰鍏抽棴___________________________
+
+        /// <summary>
+        /// 鐣岄潰鍏抽棴
+        /// </summary>
+        public override void CloseFormBefore()
+        {
+            this.FinishSelectEvent = null;
+
+            base.CloseFormBefore();
+        }
+
+        #endregion
+    }
+}
diff --git a/ZigbeeApp/Shared/Phone/MainPage/HomeMainPageForm.cs b/ZigbeeApp/Shared/Phone/MainPage/HomeMainPageForm.cs
index 97428b0..cfbcfbf 100755
--- a/ZigbeeApp/Shared/Phone/MainPage/HomeMainPageForm.cs
+++ b/ZigbeeApp/Shared/Phone/MainPage/HomeMainPageForm.cs
@@ -161,7 +161,7 @@
                 }
                 else
                 {
-                    var selectHouse = new Device.Category.SelectHouse();
+                    var selectHouse = new Category.SelectHouseForm();
                     selectHouse.Init();
                     selectHouse.HouseAction = (houseId) =>
                     {
@@ -1217,7 +1217,7 @@
         /// </summary>
         private void ShowSelectFloorForm(NormalViewControl btnFloor)
         {
-            var floorFL = new Device.Category.SelectFloor();
+            var floorFL = new Category.SelectFloorForm();
             this.AddChidren(floorFL);
             floorFL.Init(35, 153);
             floorFL.changeFloor = true;
diff --git a/ZigbeeApp/Shared/Phone/MainPage/ListRoomViewFrom.cs b/ZigbeeApp/Shared/Phone/MainPage/ListRoomViewFrom.cs
old mode 100755
new mode 100644
index e916bc0..5ac8557
--- a/ZigbeeApp/Shared/Phone/MainPage/ListRoomViewFrom.cs
+++ b/ZigbeeApp/Shared/Phone/MainPage/ListRoomViewFrom.cs
@@ -1,7 +1,6 @@
 锘縰sing System;
 using System.Collections.Generic;
 using Shared.Common;
-using Shared.Phone.Device.Category;
 using Shared.Phone.Device.CommonForm;
 using Shared.Phone.UserCenter;
 using Shared.Phone.UserView;
@@ -91,7 +90,10 @@
             };
 
             //鑾峰彇妤煎眰
-            this.curFloorId = Config.Instance.Home.CurrentFloorId;
+            if (this.curFloorId == string.Empty)
+            {
+                this.curFloorId = Config.Instance.Home.CurrentFloorId;
+            }
             var dicFloor = HdlRoomLogic.Current.GetFloorSortList();
             if (dicFloor.Count == 0)
             {
@@ -113,7 +115,7 @@
             btnIconContr.ButtonClickEvent += (sender, e) =>
             {
                 //妤煎眰鑿滃崟
-                var floors = new SelectFloor();
+                var floors = new Category.SelectFloorForm();
                 AddChidren(floors);
                 floors.changeFloor = false;
                 floors.CurFloorId = curFloorId;
diff --git a/ZigbeeApp/Shared/Phone/MainPage/UnallocatedRoomForm.cs b/ZigbeeApp/Shared/Phone/MainPage/UnallocatedRoomForm.cs
index 74c5755..e1f77c9 100755
--- a/ZigbeeApp/Shared/Phone/MainPage/UnallocatedRoomForm.cs
+++ b/ZigbeeApp/Shared/Phone/MainPage/UnallocatedRoomForm.cs
@@ -1,7 +1,6 @@
 锘縰sing System;
 using System.Collections.Generic;
 using Shared.Common;
-using Shared.Phone.Device.Category;
 using Shared.Phone.Device.CommonForm;
 using Shared.Phone.UserCenter;
 using Shared.Phone.UserView;
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Common/UserCenterCommon.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Common/UserCenterCommon.cs
index 158bed1..7c602f5 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Common/UserCenterCommon.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Common/UserCenterCommon.cs
@@ -1313,4 +1313,54 @@
     }
 
     #endregion
+
+    #region 鈻� 鑷姩鍖栨帹閫佺粨鏋淿_____________________
+
+    /// <summary>
+    /// 鑷姩鍖栨帹閫佸唴瀹�
+    /// </summary>
+    public class LogicPushResult
+    {
+        /// <summary>
+        /// 鑷姩鍖朓D
+        /// </summary>
+        public int LogicId = -1;
+        /// <summary>
+        /// 鑷姩鍖栧悕绉�
+        /// </summary>
+        public string LogicName = string.Empty;
+        /// <summary>
+        /// 鑷姩鍖栨帹閫佸唴瀹�
+        /// </summary>
+        public string LogicCustomPushText = string.Empty;
+        /// <summary>
+        /// 闂ㄩ攣甯稿紑妯″紡鏁版嵁(鑷姩鍖栨帹閫�)
+        /// </summary>
+        public DoorNormallyOpenData ActionData = null;
+    }
+
+    /// <summary>
+    /// 闂ㄩ攣甯稿紑妯″紡鏁版嵁(鑷姩鍖栨帹閫�)
+    /// </summary>
+    public class DoorNormallyOpenData
+    {
+        /// <summary>
+        /// 8:甯稿紑妯″紡鐨勬暟鎹�
+        /// </summary>
+        public int Actiontype = -1;
+        /// <summary>
+        /// 闂ㄩ攣Mac鍦板潃
+        /// </summary>
+        public string MacStr = string.Empty;
+        /// <summary>
+        /// 闂ㄩ攣绔彛鍙�
+        /// </summary>
+        public int Epoint = -1;
+        /// <summary>
+        /// 璁剧疆鑷姩鍖栨椂锛屽彂閫佺殑閫忎紶鏁版嵁 055704010112:甯稿紑妯″紡鎵撳紑  055704010113:甯稿紑妯″紡鍏抽棴
+        /// </summary>
+        public string PassDataString = string.Empty;
+    }
+
+    #endregion
 }
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlDeviceAttributeLogic.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlDeviceAttributeLogic.cs
index a650b64..653e1d9 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlDeviceAttributeLogic.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlDeviceAttributeLogic.cs
@@ -126,5 +126,298 @@
         }
 
         #endregion
+
+        #region 鈻� 绌鸿皟_______________________________
+
+        /// <summary>
+        /// SendACStatuComand
+        /// </summary>
+        /// <param name="device">璁惧</param>
+        public void SendACStatuComand(CommonDevice device)
+        {
+            if (device == null)
+            {
+                return;
+            }
+            new System.Threading.Thread(() =>
+            {
+                SendFanStatuComand(device);
+                System.Threading.Thread.Sleep(300);
+                SendThermostatStatuComand(device);
+            })
+            { IsBackground = true }.Start();
+        }
+
+        /// <summary>
+        /// SendThermostatStatuComand
+        /// </summary>
+        /// <param name="device">璁惧</param>
+        public void SendThermostatStatuComand(CommonDevice device)
+        {
+            if (device == null)
+            {
+                return;
+            }
+            var jObject = new Newtonsoft.Json.Linq.JObject
+            {
+                { "DeviceAddr",device.DeviceAddr },
+                { "Epoint", device.DeviceEpoint },
+                { "Cluster_ID", (int)Cluster_ID.Thermostat },
+                { "Command", 108 }
+            };
+            var attriBute = new Newtonsoft.Json.Linq.JArray
+            {
+               new Newtonsoft.Json.Linq.JObject
+               {
+                 { "AttriButeId", (int)AttriButeId.LocalTemperature}
+               },
+               new Newtonsoft.Json.Linq.JObject
+               {
+                 { "AttriButeId", (int)AttriButeId.CoolingSetpoint}
+               },
+               new Newtonsoft.Json.Linq.JObject
+               {
+                 { "AttriButeId", (int)AttriButeId.HeatingSetpoint}
+               },
+               new Newtonsoft.Json.Linq.JObject
+               {
+                 { "AttriButeId", (int)AttriButeId.AutoSetpoint}
+               },
+               new Newtonsoft.Json.Linq.JObject
+               {
+                 { "AttriButeId", (int)AttriButeId.SystemMode}
+               },
+               new Newtonsoft.Json.Linq.JObject
+               {
+                 { "AttriButeId", (int)AttriButeId.AcModeSupport}
+               },
+               new Newtonsoft.Json.Linq.JObject
+               {
+                 { "AttriButeId", (int)AttriButeId.CleanStatu}
+               }
+            };
+            var data = new Newtonsoft.Json.Linq.JObject { { "AttriBute", attriBute } };
+            jObject.Add("Data", data);
+            device.Gateway?.Send(("GetDeviceStatus"), jObject.ToString());
+        }
+
+        /// <summary>
+        /// SendFanStatuComand
+        /// </summary>
+        /// <param name="device">璁惧</param>
+        private void SendFanStatuComand(CommonDevice device)
+        {
+            if (device == null)
+            {
+                return;
+            }
+            var jObject = new Newtonsoft.Json.Linq.JObject
+            {
+                { "DeviceAddr",device.DeviceAddr },
+                { "Epoint", device.DeviceEpoint },
+                { "Cluster_ID", (int)Cluster_ID.FanControl },
+                { "Command", 108 }
+            };
+            var attriBute = new Newtonsoft.Json.Linq.JArray
+            {
+               new Newtonsoft.Json.Linq.JObject
+               {
+                 { "AttriButeId", (int)AttriButeId.FanMode}
+               },
+               new Newtonsoft.Json.Linq.JObject
+               {
+                 { "AttriButeId", (int)AttriButeId.FanSwing}
+               }
+            };
+            var data = new Newtonsoft.Json.Linq.JObject { { "AttriBute", attriBute } };
+            jObject.Add("Data", data);
+            device.Gateway?.Send("GetDeviceStatus", jObject.ToString());
+        }
+
+        #endregion
+
+        #region 鈻� 绐楀笜_______________________________
+        /// <summary>
+        /// 鍙戦�佽幏鍙栫獥甯樼姸鎬佸懡浠�
+        /// </summary>
+        /// <param name="device">绐楀笜</param>
+        public void SendCurtainStatuComand(CommonDevice device)
+        {
+            if (device == null)
+            {
+                return;
+            }
+            var jObject = new Newtonsoft.Json.Linq.JObject
+            {
+                { "DeviceAddr",device.DeviceAddr },
+                { "Epoint", device.DeviceEpoint },
+                { "Cluster_ID", (int)Cluster_ID.WindowCovering },
+                { "Command", 108 }
+            };
+            var attriBute = new Newtonsoft.Json.Linq.JArray
+            {
+               new Newtonsoft.Json.Linq.JObject
+               {
+                 { "AttriButeId", (int)AttriButeId.CurrentPositionLiftPercentage}
+               }
+            };
+            var data = new Newtonsoft.Json.Linq.JObject { { "AttriBute", attriBute } };
+            jObject.Add("Data", data);
+            device.Gateway?.Send(("GetDeviceStatus"), jObject.ToString());
+        }
+
+        #endregion
+
+        #region 鈻� 鐏厜_______________________________
+
+        /// <summary>
+        /// Light
+        /// </summary>
+        /// <param name="device"></param>
+        public void SendLightStatuComand(CommonDevice device)
+        {
+            SendSwitchStatuComand(device);
+        }
+
+        /// <summary>
+        /// Light
+        /// </summary>
+        /// <param name="device"></param>
+        public void SendDimmableLightStatuComand(CommonDevice device)
+        {
+            if (device == null)
+            {
+                return;
+            }
+            new System.Threading.Thread(() =>
+            {
+                SendSwitchStatuComand(device);
+                System.Threading.Thread.Sleep(300);
+                SendLevelStatuComand(device);
+            })
+            { IsBackground = true }.Start();
+        }
+
+        /// <summary>
+        /// 鍙戦�佽幏鍙栫伅鍏夌姸鎬佸懡浠�
+        /// </summary>
+        /// <param name="device">绐楀笜</param>
+        private void SendSwitchStatuComand(CommonDevice device)
+        {
+            if (device == null)
+            {
+                return;
+            }
+            var jObject = new Newtonsoft.Json.Linq.JObject
+            {
+                { "DeviceAddr",device.DeviceAddr },
+                { "Epoint", device.DeviceEpoint },
+                { "Cluster_ID", (int)Cluster_ID.Switch },
+                { "Command", 108 }
+            };
+            var attriBute = new Newtonsoft.Json.Linq.JArray
+            {
+               new Newtonsoft.Json.Linq.JObject
+               {
+                 { "AttriButeId", (int)AttriButeId.Switch}
+               }
+            };
+            var data = new Newtonsoft.Json.Linq.JObject { { "AttriBute", attriBute } };
+            jObject.Add("Data", data);
+            device.Gateway?.Send(("GetDeviceStatus"), jObject.ToString());
+        }
+
+        /// <summary>
+        /// 鍙戦�佽幏鍙栫伅鍏夌姸鎬佸懡浠�
+        /// </summary>
+        /// <param name="device">绐楀笜</param>
+        private void SendLevelStatuComand(CommonDevice device)
+        {
+            if (device == null)
+            {
+                return;
+            }
+            var jObject = new Newtonsoft.Json.Linq.JObject
+            {
+                { "DeviceAddr",device.DeviceAddr },
+                { "Epoint", device.DeviceEpoint },
+                { "Cluster_ID", (int)Cluster_ID.LevelControl },
+                { "Command", 108 }
+            };
+            var attriBute = new Newtonsoft.Json.Linq.JArray
+            {
+               new Newtonsoft.Json.Linq.JObject
+               {
+                 { "AttriButeId", (int)AttriButeId.LevelControl}
+               }
+            };
+            var data = new Newtonsoft.Json.Linq.JObject { { "AttriBute", attriBute } };
+            jObject.Add("Data", data);
+            device.Gateway?.Send(("GetDeviceStatus"), jObject.ToString());
+        }
+
+        #endregion
+
+        #region 鈻� 娓╂箍搴____________________________
+
+        /// <summary>
+        /// 璇诲彇娓╁害
+        /// </summary>
+        /// <param name="device"></param>
+        public void SendTemperatureStatuComand(CommonDevice device)
+        {
+            if (device == null)
+            {
+                return;
+            }
+            var jObject = new Newtonsoft.Json.Linq.JObject
+            {
+                { "DeviceAddr",device.DeviceAddr },
+                { "Epoint", device.DeviceEpoint },
+                { "Cluster_ID", (int)Cluster_ID.TemperatureMeasurement },
+                { "Command", 108 }
+            };
+            var attriBute = new Newtonsoft.Json.Linq.JArray
+            {
+               new Newtonsoft.Json.Linq.JObject
+               {
+                 { "AttriButeId", (int)AttriButeId.MeasuredValue}
+               }
+            };
+            var data = new Newtonsoft.Json.Linq.JObject { { "AttriBute", attriBute } };
+            jObject.Add("Data", data);
+            device.Gateway?.Send(("GetDeviceStatus"), jObject.ToString());
+        }
+
+        /// <summary>
+        /// 璇诲彇婀垮害
+        /// </summary>
+        /// <param name="device"></param>
+        public void SendHumidityStatuComand(CommonDevice device)
+        {
+            if (device == null)
+            {
+                return;
+            }
+            var jObject = new Newtonsoft.Json.Linq.JObject
+            {
+                { "DeviceAddr",device.DeviceAddr },
+                { "Epoint", device.DeviceEpoint },
+                { "Cluster_ID", (int)Cluster_ID.RelativeHumidityMeasurement },
+                { "Command", 108 }
+            };
+            var attriBute = new Newtonsoft.Json.Linq.JArray
+            {
+               new Newtonsoft.Json.Linq.JObject
+               {
+                 { "AttriButeId", (int)AttriButeId.MeasuredValue}
+               }
+            };
+            var data = new Newtonsoft.Json.Linq.JObject { { "AttriBute", attriBute } };
+            jObject.Add("Data", data);
+            device.Gateway?.Send(("GetDeviceStatus"), jObject.ToString());
+        }
+
+        #endregion
     }
 }
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlDeviceDoorLockLogic.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlDeviceDoorLockLogic.cs
index 99c9608..6544496 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlDeviceDoorLockLogic.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlDeviceDoorLockLogic.cs
@@ -71,7 +71,7 @@
         {
             var pra = new GetDoorIdPra();
             pra.LoginAccessToken = UserCenterLogic.GetConnectMainToken();
-            pra.DoorLockId = i_doorLock.DeviceAddr + "_" + i_doorLock.DeviceEpoint;
+            pra.DoorLockId = i_doorLock.DeviceAddr + "_200";
             //涓嶄簩娆″彂閫�,涓嶆娴嬮敊璇爜
             var listCheck = new List<string>() { "NotSetAgain", "NotCheck" };
             var result = await UserCenterLogic.GetResponseDataByRequestHttps("DoorLock/GetDoorLockPager", true, pra, listCheck);
@@ -87,7 +87,7 @@
             //濡傛灉杩樻病鏈夊垱寤�,鍒欒櫄鎷熶竴涓壒娈婄殑涓滆タ鍑烘潵
             var pra2 = new AddDoorPra();
             pra2.LoginAccessToken = UserCenterLogic.GetConnectMainToken();
-            pra2.DoorLockId = i_doorLock.DeviceAddr + "_" + i_doorLock.DeviceEpoint;
+            pra2.DoorLockId = i_doorLock.DeviceAddr + "_200";
             var result2 = await UserCenterLogic.GetResponseDataByRequestHttps("DoorLock/AddDoorLock", true, pra2, listCheck);
             //浜戠鏄洿鎺ヨ繑鍥炲垱寤虹殑涓婚敭瀛楃涓�
             return result2;
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlGatewayReceiveLogic.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlGatewayReceiveLogic.cs
index 3d4e330..79f5634 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlGatewayReceiveLogic.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlGatewayReceiveLogic.cs
@@ -188,7 +188,7 @@
                 //閫昏緫瑙﹀彂涓婃姤
                 else if (topic == gatewayId + "/Logic/Execute_Respon")
                 {
-                    this.LogicExecutePush(null);
+                    this.LogicExecutePush(JObject.Parse(msgData));
                 }
                 //鍦烘櫙瑙﹀彂涓婃姤
                 else if (topic == gatewayId + "/Scene/Exec_Respon")
@@ -498,10 +498,10 @@
         private void DoorLockDeviceReportPush(JObject receiveData)
         {
             //鍙湁寰愭鐨勯棬閿佺晫闈㈡病鏈夋墦寮�鐨勬儏鍐典笅,鎵嶄細澶勭悊杩欎釜涓滆タ
-            if (ControlCommonResourse.IsDoorLockPageOpen == false)
+            if (ControlCommonResourse.IsDoorLockPageOpen == false && UserCenterResourse.UserInfo.AuthorityNo == 1)
             {
                 var device = Common.LocalDevice.Current.GetDevice(receiveData.Value<string>("DeviceAddr"), receiveData.Value<int>("Epoint"));
-                if ((device is ZigBee.Device.DoorLock) == false)
+                if (device.Type != DeviceType.DoorLock)
                 {
                     //瀹冧笉鏄棬閿�
                     return;
@@ -509,10 +509,14 @@
                 var info = Newtonsoft.Json.JsonConvert.DeserializeObject<DoorLockAlarmsResult>(receiveData["Data"].ToString());
                 if (info.Clusterid == 257)
                 {
-                    //甯稿紑妯″紡寮�鍚�
-                    if (info.AlarmCode == 216)
+                    //甯稿紑妯″紡鍏抽棴
+                    if (info.AlarmCode == 217 || info.AlarmCode == 219)
                     {
-                        DoorLock.DoorLockCommonInfo.NomallyOpenModeInvalidDialog((ZigBee.Device.DoorLock)device, DoorLock.DoorLockCommonInfo.DoorLockMessType.ServicePush, null);
+                        HdlThreadLogic.Current.RunMain(() =>
+                        {
+                            //寮瑰嚭寰愭鐨勯偅涓獥鍙�
+                            DoorLock.DoorLockCommonInfo.NomallyOpenModeInvalidDialog((ZigBee.Device.DoorLock)device, DoorLock.DoorLockCommonInfo.DoorLockMessType.ServicePush, null);
+                        });
                     }
                 }
             }
@@ -705,10 +709,30 @@
         /// <param name="receiveData"></param>
         private void LogicExecutePush(JObject receiveData)
         {
-            //鐩墠涓嶅鐞嗛�昏緫涓婃姤鍐呭
-
             //鏄剧ず鏈夋柊娑堟伅鐨勭壒鏁�
             this.ShowHadNewMessageAppeal();
+
+            //杩欎釜涓滆タ鏆傛椂涓嶅鐞�
+            ////鍙湁寰愭鐨勯棬閿佺晫闈㈡病鏈夋墦寮�鐨勬儏鍐典笅,鎵嶄細澶勭悊杩欎釜涓滆タ
+            //if (ControlCommonResourse.IsDoorLockPageOpen == false && UserCenterResourse.UserInfo.AuthorityNo == 1)
+            //{
+            //    var device = Common.LocalDevice.Current.GetDevice(receiveData.Value<string>("DeviceAddr"), receiveData.Value<int>("Epoint"));
+            //    if (device.Type != DeviceType.DoorLock)
+            //    {
+            //        return;
+            //    }
+            //    //鑷姩鍖栨墽琛� 甯稿紑鍏抽棴
+            //    var data = Newtonsoft.Json.JsonConvert.DeserializeObject<LogicPushResult>(receiveData["Data"].ToString());
+            //    if (data.ActionData != null && data.ActionData.Actiontype == 8
+            //        && data.ActionData.PassDataString == "055704010113")
+            //    {
+            //        HdlThreadLogic.Current.RunMain(() =>
+            //        {
+            //            //寮瑰嚭寰愭鐨勯偅涓獥鍙�
+            //            DoorLock.DoorLockCommonInfo.NomallyOpenModeInvalidDialog((ZigBee.Device.DoorLock)device, DoorLock.DoorLockCommonInfo.DoorLockMessType.ServicePush, null);
+            //        });
+            //    }
+            //}
         }
 
         #endregion
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlSafeguardLogic.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlSafeguardLogic.cs
index 35fc675..d1d8ec5 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlSafeguardLogic.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlSafeguardLogic.cs
@@ -1154,10 +1154,10 @@
                     }
                     else if (data.Type == "1")
                     {
-                        var scene = Common.SceneRoomUI.AllSceneRoomUIList.Find((obj) => obj.sceneUI.Id == data.ScenesId);
+                        var scene = HdlSceneLogic.Current.GetSceneUIBySceneId(data.ScenesId);
                         if (scene != null)
                         {
-                            string msg = scene.sceneUI.Name + "\r\n";
+                            string msg = scene.Name + "\r\n";
                             //鐩爣鍦烘櫙涓嶅瓨鍦�
                             msg += Language.StringByID(R.MyInternationalizationString.uTargetSceneIsNotExsit);
                             this.ShowTipMsg(msg);
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Device/AirConditioner/IndoorUnitListForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Device/AirConditioner/IndoorUnitListForm.cs
index 07b2928..f95c63a 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/Device/AirConditioner/IndoorUnitListForm.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Device/AirConditioner/IndoorUnitListForm.cs
@@ -216,7 +216,7 @@
                         return;
                     }
                     //璇诲彇鐘舵��
-                    Phone.Device.DeviceLogic.ReadDeviceAttributeLogic.Instance.SendThermostatStatuComand(listDevice[i]);
+                    HdlDeviceAttributeLogic.Current.SendThermostatStatuComand(listDevice[i]);
                     System.Threading.Thread.Sleep(200);
                 }
             });
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/BindInfo.cs b/ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/BindInfo.cs
index b22d780..4bc702c 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/BindInfo.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/BindInfo.cs
@@ -2,7 +2,6 @@
 using System.Collections.Generic;
 using System.Threading.Tasks;
 using Shared.Common;
-using Shared.Phone.Device.Category;
 using Shared.Phone.UserCenter.Device;
 using ZigBee.Device;
 using static ZigBee.Device.Panel;
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceAddSuccessForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceAddSuccessForm.cs
index a6cb796..cf2a242 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceAddSuccessForm.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceAddSuccessForm.cs
@@ -179,6 +179,8 @@
             btnHelp.Text = Language.StringByID(R.MyInternationalizationString.uMoreSettion);
             btnHelp.ButtonClickEvent += (sender, e) =>
             {
+                //鏇存敼杩囦竴娆′箣鍚庯紝鍒欑晫闈㈠叧闂悗涓嶅啀鏇存敼
+                this.saveDefultName = string.Empty;
                 //鏀瑰悕瀛�
                 btnNote.txtInput.FinishInputEvent();
 
@@ -235,6 +237,8 @@
             detailBackFrame.AddChidren(btnFinish);
             btnFinish.MouseUpEventHandler += (sender, e) =>
             {
+                //鏇存敼杩囦竴娆′箣鍚庯紝鍒欑晫闈㈠叧闂悗涓嶅啀鏇存敼
+                this.saveDefultName = string.Empty;
                 //鏀瑰悕瀛�
                 btnNote.txtInput.FinishInputEvent();
                 //鍏抽棴鑷韩
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Device/DoorLock/DoorLockHistoryLogForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Device/DoorLock/DoorLockHistoryLogForm.cs
index 620df26..39a09ef 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/Device/DoorLock/DoorLockHistoryLogForm.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Device/DoorLock/DoorLockHistoryLogForm.cs
@@ -581,7 +581,7 @@
 
         #endregion
 
-        #region 鈻� 鑾峰彇璁板綍___________________________
+        #region 鈻� 鑾峰彇闂ㄩ攣鎵撳紑璁板綍___________________
 
         /// <summary>
         /// 鑾峰彇鍘嗗彶璁板綍
@@ -648,7 +648,15 @@
                     return null;
                 }
                 var dataInfo = Newtonsoft.Json.JsonConvert.DeserializeObject<GetHistoryDataResult>(result);
-                listLog.AddRange(dataInfo.PageData);
+                foreach (var data in dataInfo.PageData)
+                {
+                    //涓嶇煡閬撲负浠�涔堜細鏈変笂鎶ヤ簡铏氭嫙9000鐨勯偅涓壒娈婄殑涓滆タ
+                    if (data.OpenLockMode == 9000 && data.OtherOpenLockMode <= 9000)
+                    {
+                        continue;
+                    }
+                    listLog.Add(data);
+                }
 
                 if (dataInfo.HasNextPage == false)
                 {
@@ -662,6 +670,10 @@
             return listLog;
         }
 
+        #endregion
+
+        #region 鈻� 鑾峰彇闂ㄩ攣鍏朵粬璁板綍___________________
+
         /// <summary>
         /// 鑾峰彇闂ㄩ攣鐨勫叾浠栬褰�
         /// </summary>
@@ -670,7 +682,7 @@
         {
             var listLog = new List<HistoryInfo>();
 
-            //鍘昏幏鍙栧叾浠栦俊鎭�
+            //鑾峰彇闂ㄩ攣鍏朵粬绫讳俊鎭笂鎶�
             var pra2 = new MessageInfoPra();
             pra2.BeginTime = beginTime;
             pra2.EndTime = endTime;
@@ -681,8 +693,38 @@
             {
                 return null;
             }
+            this.AdjustDoorOtherAlarmData(ref listLog, result);
+
+            //浠庤嚜鍔ㄥ寲涓�,鑾峰彇甯稿紑妯″紡璁板綍
+            pra2.Topic = "/Logic/Execute_Respon";
+            result = await UserCenterLogic.GetResponseDataByRequestHttps("MessageCenter/GetMessageCenterPagger", true, pra2);
+            if (result == null)
+            {
+                return null;
+            }
+            this.AdjustDoorNormallyOpenData(ref listLog, result);
+
+            //鑾峰彇闂ㄩ攣涓存椂瀵嗙爜寮�閿佽褰�
+            pra2.Topic = "/DoorLock/DoorLockOperatingEventNotificationCommand";
+            result = await UserCenterLogic.GetResponseDataByRequestHttps("MessageCenter/GetMessageCenterPagger", true, pra2);
+            if (result == null)
+            {
+                return null;
+            }
+            this.AdjustDoorTemporaryPasswordData(ref listLog, result);
+
+            return listLog;
+        }
+
+        /// <summary>
+        /// 澶勭悊闂ㄩ攣甯稿紑妯″紡璁板綍淇℃伅
+        /// </summary>
+        /// <param name="listLog"></param>
+        /// <param name="result"></param>
+        private void AdjustDoorOtherAlarmData(ref List<HistoryInfo> listLog, string result)
+        {
             var dataInfo2 = Newtonsoft.Json.JsonConvert.DeserializeObject<MessageCentetInfo>(result);
-            string doorKey = this.DeviceDoor.DeviceAddr + "_" + this.DeviceDoor.DeviceEpoint;
+            string doorKey = this.DeviceDoor.DeviceAddr + "_200";
             foreach (var myInfo in dataInfo2.PageData)
             {
                 //璁惧瀵硅薄
@@ -712,8 +754,109 @@
                 }
                 listLog.Add(data);
             }
+        }
 
-            return listLog;
+        /// <summary>
+        /// 澶勭悊闂ㄩ攣甯稿紑妯″紡淇℃伅涓婃姤
+        /// </summary>
+        /// <param name="listLog"></param>
+        /// <param name="result"></param>
+        private void AdjustDoorNormallyOpenData(ref List<HistoryInfo> listLog, string result)
+        {
+            var dataInfo2 = Newtonsoft.Json.JsonConvert.DeserializeObject<MessageCentetInfo>(result);
+            string doorKey = this.DeviceDoor.DeviceAddr + "_200";
+            foreach (var myInfo in dataInfo2.PageData)
+            {
+                var jobject = Newtonsoft.Json.Linq.JObject.Parse(myInfo.PayloadJson);
+                var myActionData = Newtonsoft.Json.JsonConvert.DeserializeObject<LogicPushResult>(jobject["Data"].ToString());
+                if (myActionData.ActionData == null || myActionData.ActionData.Actiontype != 8)
+                {
+                    //涓嶆槸甯稿紑妯″紡鐨勮嚜鍔ㄥ寲
+                    continue;
+                }
+                string deviceAddr = myActionData.ActionData.MacStr;
+                int deviceEpoint = myActionData.ActionData.Epoint;
+                if (doorKey != deviceAddr + "_" + deviceEpoint)
+                {
+                    //涓嶆槸鍚屼竴涓棬閿佺殑璁板綍
+                    continue;
+                }
+
+                var data = new HistoryInfo();
+                data.DeviceMac = deviceAddr;
+                data.DeviceEpoint = deviceEpoint;
+                //娑堟伅
+                if (myActionData.ActionData.PassDataString == "055704010112")
+                {
+                    //甯稿紑妯″紡寮�鍚�(鑷姩鍖栬Е鍙�)
+                    data.AlarmMsg = Language.StringByID(R.MyInternationalizationString.uDoorLockAlarmMsg11);
+                }
+                else if (myActionData.ActionData.PassDataString == "055704010113")
+                {
+                    //甯稿紑妯″紡缁撴潫(鑷姩鍖栬Е鍙�)
+                    data.AlarmMsg = Language.StringByID(R.MyInternationalizationString.uDoorLockAlarmMsg12);
+                }
+                else
+                {
+                    continue;
+                }
+                //鏃堕棿
+                data.UnlockTime = myInfo.CreatedOnUtc;
+                //涓婚敭
+                data.MsgKeyId = myInfo.Id;
+                //娑堟伅鍖哄垎
+                data.OpenLockMode = 9000;
+
+                listLog.Add(data);
+            }
+        }
+
+        /// <summary>
+        /// 澶勭悊闂ㄩ攣涓存椂瀵嗙爜涓婃姤
+        /// </summary>
+        /// <param name="listLog"></param>
+        /// <param name="result"></param>
+        private void AdjustDoorTemporaryPasswordData(ref List<HistoryInfo> listLog, string result)
+        {
+            var dataInfo2 = Newtonsoft.Json.JsonConvert.DeserializeObject<MessageCentetInfo>(result);
+            string doorKey = this.DeviceDoor.DeviceAddr + "_200";
+            foreach (var myInfo in dataInfo2.PageData)
+            {
+                var jobject = Newtonsoft.Json.Linq.JObject.Parse(myInfo.PayloadJson);
+                string deviceAddr = jobject.Value<string>("DeviceAddr");
+                int deviceEpoint = jobject.Value<int>("Epoint");
+                if (doorKey != deviceAddr + "_" + deviceEpoint)
+                {
+                    //涓嶆槸鍚屼竴涓棬閿佺殑璁板綍
+                    continue;
+                }
+                var myActionData = Newtonsoft.Json.JsonConvert.DeserializeObject<PasswordOperationData>(jobject["Data"].ToString());
+                if (myActionData.UserID != 246)
+                {
+                    //涓嶆槸涓存椂瀵嗙爜
+                    continue;
+                }
+                var data = new HistoryInfo();
+                data.DeviceMac = deviceAddr;
+                data.DeviceEpoint = deviceEpoint;
+                //娑堟伅
+                if (myActionData.OperationEventCode == 2)
+                {
+                    //涓存椂瀵嗙爜寮�閿佹垚鍔�
+                    data.AlarmMsg = Language.StringByID(R.MyInternationalizationString.uDoorLockAlarmMsg13);
+                }
+                else
+                {
+                    //涓存椂瀵嗙爜寮�閿佸け璐�
+                    data.AlarmMsg = Language.StringByID(R.MyInternationalizationString.uDoorLockAlarmMsg14);
+                }
+                //鏃堕棿
+                data.UnlockTime = myInfo.CreatedOnUtc;
+                //涓婚敭
+                data.MsgKeyId = myInfo.Id;
+
+                listLog.Add(data);
+            }
         }
 
         #endregion
@@ -788,7 +931,7 @@
             pra.UnlockTimeBegin = dateFrom.ToUniversalTime().ToString();
             pra.UnlockTimeEnd = dateTo.ToUniversalTime().ToString();
             pra.LoginAccessToken = UserCenterLogic.GetConnectMainToken();
-            pra.DoorLockId = this.DeviceDoor.DeviceAddr + "_" + this.DeviceDoor.DeviceEpoint;
+            pra.DoorLockId = this.DeviceDoor.DeviceAddr + "_200";
 
             return pra;
         }
@@ -827,7 +970,7 @@
             pra.UnlockTimeBegin = dateFrom.ToUniversalTime().ToString();
             pra.UnlockTimeEnd = dateTo.ToUniversalTime().ToString();
             pra.LoginAccessToken = UserCenterLogic.GetConnectMainToken();
-            pra.DoorLockId = this.DeviceDoor.DeviceAddr + "_" + this.DeviceDoor.DeviceEpoint;
+            pra.DoorLockId = this.DeviceDoor.DeviceAddr + "_200";
             pra.CloudAccountIds = listUser;
             pra.OpenLockModes = listLock;
 
@@ -986,6 +1129,25 @@
             public string MsgKeyId = string.Empty;
         }
 
+        /// <summary>
+        /// 涓存椂瀵嗙爜鏁版嵁
+        /// </summary>
+        private class PasswordOperationData
+        {
+            /// <summary>
+            /// 0:瀵嗙爜 15:鎸囩汗 3:IC鍗�
+            /// </summary>
+            public int OperationEventSoure = -1;
+            /// <summary>
+            /// 2:寮�閿佹垚鍔�
+            /// </summary>
+            public int OperationEventCode = -1;
+            /// <summary>
+            /// 246浠h〃涓存椂瀵嗙爜
+            /// </summary>
+            public int UserID = -1;
+        }
+
         #endregion
     }
 }
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/UserMain/UserMainForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/UserMain/UserMainForm.cs
index fba957b..a19f778 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/UserMain/UserMainForm.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/UserMain/UserMainForm.cs
@@ -141,6 +141,11 @@
             btnUserIcon.Y = frameWhite.Y - Application.GetRealHeight(109);
             btnUserIcon.MouseUpEventHandler += (sender, e) =>
             {
+                if (Common.Config.Instance.Home.IsVirtually == true)
+                {
+                    //濡傛灉鏀逛綇瀹呬负铏氭嫙浣忓畢,鍒欐鍔熻兘鏃犳晥
+                    return;
+                }
                 var form = new UserInformationForm();
                 form.AddForm();
             };
@@ -247,6 +252,11 @@
                 var frame = this.CreatMainMenuControl(frameMenu, TextID, unSelectPic);
                 frame.ButtonClickEvent += (sender, e) =>
                 {
+                    if (Common.Config.Instance.Home.IsVirtually == true)
+                    {
+                        //濡傛灉鏀逛綇瀹呬负铏氭嫙浣忓畢,鍒欐鍔熻兘鏃犳晥
+                        return;
+                    }
                     var form = new Member.MemberListForm();
                     form.AddForm();
                 };
@@ -300,6 +310,11 @@
                 var frame = this.CreatMainMenuControl(frameMenu, TextID, unSelectPic);
                 frame.ButtonClickEvent += (sender, e) =>
                 {
+                    if (Common.Config.Instance.Home.IsVirtually == true)
+                    {
+                        //濡傛灉鏀逛綇瀹呬负铏氭嫙浣忓畢,鍒欐鍔熻兘鏃犳晥
+                        return;
+                    }
                     var form = new Safety.SafetyManagementMainForm();
                     form.AddForm();
                 };
@@ -388,6 +403,11 @@
                 btnBackView.X -= ControlCommonResourse.XXLeft / 2;
                 rowback.ButtonClickEvent += (sender, e) =>
                 {
+                    if (Common.Config.Instance.Home.IsVirtually == true)
+                    {
+                        //濡傛灉鏀逛綇瀹呬负铏氭嫙浣忓畢,鍒欐鍔熻兘鏃犳晥
+                        return;
+                    }
                     var form = new HdlBackup.HdlBackupListForm();
                     form.AddForm();
                 };
@@ -433,6 +453,11 @@
             btnAbountView.X -= ControlCommonResourse.XXLeft / 2;
             rowAbount.ButtonClickEvent += (sender, e) =>
             {
+                if (Common.Config.Instance.Home.IsVirtually == true)
+                {
+                    //濡傛灉鏀逛綇瀹呬负铏氭嫙浣忓畢,鍒欐鍔熻兘鏃犳晥
+                    return;
+                }
                 var form = new Abount.AbountForm();
                 form.AddForm();
             };
diff --git a/ZigbeeApp/Shared/R.cs b/ZigbeeApp/Shared/R.cs
index 94be26e..5171c94 100755
--- a/ZigbeeApp/Shared/R.cs
+++ b/ZigbeeApp/Shared/R.cs
@@ -5603,11 +5603,11 @@
         /// </summary>
         public const int uEditorSceneNameFail = 16087;
         /// <summary>
-        /// 闂ㄩ攣鎶ヨ淇℃伅8锛氬父寮�妯″紡寮�鍚�(缃戝叧瑙﹀彂)
+        /// 闂ㄩ攣鎶ヨ淇℃伅9锛氬父寮�妯″紡寮�鍚�(缃戝叧瑙﹀彂)
         /// </summary>
         public const int uDoorLockAlarmMsg9 = 16088;
         /// <summary>
-        /// 闂ㄩ攣鎶ヨ淇℃伅8锛氬父寮�妯″紡缁撴潫(缃戝叧瑙﹀彂)
+        /// 闂ㄩ攣鎶ヨ淇℃伅10锛氬父寮�妯″紡缁撴潫(缃戝叧瑙﹀彂)
         /// </summary>
         public const int uDoorLockAlarmMsg10 = 16089;
         /// <summary>
@@ -5650,6 +5650,23 @@
         /// 璇峰厛闃呰骞跺悓鎰忋�婇殣绉佹潈鏀跨瓥銆嬪拰銆婃湇鍔℃潯娆俱��
         /// </summary>
         public const int uPleaseReadAndAgreePrivacyPolicyMsg = 16099;
+        /// <summary>
+        /// 闂ㄩ攣鎶ヨ淇℃伅11锛氬父寮�妯″紡寮�鍚�(鑷姩鍖栬Е鍙�)
+        /// </summary>
+        public const int uDoorLockAlarmMsg11 = 16100;
+        /// <summary>
+        /// 闂ㄩ攣鎶ヨ淇℃伅12锛氬父寮�妯″紡缁撴潫(鑷姩鍖栬Е鍙�)
+        /// </summary>
+        public const int uDoorLockAlarmMsg12 = 16101;
+        /// <summary>
+        /// 闂ㄩ攣鎶ヨ淇℃伅13锛氫复鏃跺瘑鐮佸紑閿佹垚鍔�
+        /// </summary>
+        public const int uDoorLockAlarmMsg13 = 16102;
+        /// <summary>
+        /// 闂ㄩ攣鎶ヨ淇℃伅14锛氫复鏃跺瘑鐮佸紑閿佸け璐�
+        /// </summary>
+        public const int uDoorLockAlarmMsg14 = 16103;
+
 
         //鈽呪槄鈽呪槄涓嬮潰杩欎簺鏄帴鍙g殑杩斿洖淇℃伅缈昏瘧,浠�18000寮�濮嬧槄鈽呪槄鈽�
         /// <summary>
diff --git a/ZigbeeApp/Shared/Shared.projitems b/ZigbeeApp/Shared/Shared.projitems
index 70e00cb..f631be9 100755
--- a/ZigbeeApp/Shared/Shared.projitems
+++ b/ZigbeeApp/Shared/Shared.projitems
@@ -14,11 +14,9 @@
     <Compile Include="$(MSBuildThisFileDirectory)Common\Logic.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Common\ResponseEntity\ApkInfoOBJ.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Common\ResponseEntity\AuthUserRes.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)Common\ResponseEntity\FirmwareManaRes.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Common\ResponseEntity\GetAppVersionCode.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Common\ResponseEntity\ResultPack.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Common\ResponseEntity\UserLoginLocalRegionRes.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)Pad\MainPage.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Phone\Category\AddOrEditorSceneForm.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Phone\Category\AdjustTargetAddDelayTimeForm.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Phone\Category\AdjustTargetAddDeviceForm.cs" />
@@ -58,12 +56,11 @@
     <Compile Include="$(MSBuildThisFileDirectory)Phone\Login\Controls\PhoneEmailSelectControl.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Phone\Login\PhoneEmailForm.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Phone\Login\PhoneZone.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)Phone\Device\AC\ACControlBase.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)Phone\Device\Category\SelectFloor.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)Phone\Device\Category\SelectHouse.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)Phone\MainPage\ControlForm\DeviceAcDetailCardMethord.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)Phone\Category\SelectFloorForm.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)Phone\Category\SelectHouseForm.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Phone\Device\CommonForm\CommonEnum.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Phone\Device\CommonForm\CommonFormResouce.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)Phone\Device\CommonForm\CompleteButton.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Phone\Device\CommonForm\DeviceIconSelectedIMGByLocal.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Phone\Device\CommonForm\DeviceInfoRow.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Phone\Device\CommonForm\FunctionIconButton.cs" />
@@ -73,7 +70,6 @@
     <Compile Include="$(MSBuildThisFileDirectory)Phone\Device\CommonForm\SelectTime.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Phone\Device\CommonForm\SelectZone.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Phone\Device\CommonForm\TopFrameLayout.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)Phone\Device\DeviceLogic\ReadDeviceAttributeLogic.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Phone\Device\Logic\AddLogicPage.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Phone\Device\Logic\AddScenePage.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Phone\Device\Logic\CustomText.cs" />
@@ -102,6 +98,7 @@
     <Compile Include="$(MSBuildThisFileDirectory)Phone\MainPage\ControlForm\DeviceRelayDetailCardForm.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Phone\MainPage\Controls\DeviceFunctionUnallocatedControl.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Phone\MainPage\Controls\DeviceSelectUnallocatedControl.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)Phone\MainPage\Controls\SelectLocalDeviceImageForm.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Phone\MainPage\DeviceDetailInfoForm.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Phone\MainPage\UnallocatedRoomForm.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Phone\MainPage\Controls\DeviceCard\Base\DeviceCardCommon.cs" />
@@ -418,14 +415,10 @@
     <Compile Include="$(MSBuildThisFileDirectory)Phone\Login\AccountLogin.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Phone\Login\AccountLoginByCode.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Common\CommonPage.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)Common\ResponseEntity\BackupInfoRes.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)Common\ResponseEntity\FolderRes.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)Common\ResponseEntity\GatewayRes.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Common\ResponseEntity\GetAreaCode.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Common\ResponseEntity\ResidenceRes.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Common\ResponseEntity\ResponsePack.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Common\ResponseEntity\UserLoginRes.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)Common\ResponseEntity\UserRegisterReqDto.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Common\SendDataToServer.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Common\Room.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Phone\MainPage\ListRoomViewFrom.cs" />
@@ -440,8 +433,6 @@
     <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\Safety\SafetyManagementMainForm.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\CommonBase\Controls\FrameLayoutControls\FrameRowControl.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Common\SceneUI.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)Common\SceneTargetDeviceUI.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)Common\SceneRoomUI.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Phone\ZigBee\Common\Application.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Phone\ZigBee\Common\BigInteger.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Phone\ZigBee\Common\CloudMqttResponsePack.cs" />
@@ -481,8 +472,6 @@
     <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\CommonBase\Logic\HdlAlarmsLogic.cs" />
   </ItemGroup>
   <ItemGroup>
-    <Folder Include="$(MSBuildThisFileDirectory)Pad\" />
-    <Folder Include="$(MSBuildThisFileDirectory)Pad\Home\" />
     <Folder Include="$(MSBuildThisFileDirectory)Phone\CommonForm\" />
     <Folder Include="$(MSBuildThisFileDirectory)Phone\MainPage\Controls\DeviceCard\Base\" />
   </ItemGroup>

--
Gitblit v1.8.0