From 98ceb6bd2021f9ff136cda27eef28676dd7b5d92 Mon Sep 17 00:00:00 2001
From: 黄学彪 <hxb@hdlchina.com.cn>
Date: 星期四, 21 五月 2020 13:24:02 +0800
Subject: [PATCH] 最后的版本

---
 ZigbeeApp/Shared/Phone/Category/AddOrEditorSceneForm.cs                                              |    9 
 ZigbeeApp/Shared/Phone/UserCenter/DoorLock/DoorLockCommonInfo.cs                                     |   12 
 ZigbeeApp/Shared/Phone/Device/Logic/SkipView.cs                                                      |    5 
 ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Resourse/ControlCommonResourse.cs                       |    4 
 ZigbeeApp/Shared/Phone/ZigBee/Common/Application.cs                                                  |   46 ---
 ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlGatewayReceiveLogic.cs                         |   80 +++---
 ZigbeeApp/Shared/Phone/UserCenter/DoorLock/UserDoorLockPage.cs                                       |  337 +++++--------------------
 ZigbeeApp/Shared/Phone/UserCenter/DoorLock/FunctionSetting.cs                                        |    6 
 ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/BindTargetsPage.cs                                     |   10 
 ZigbeeApp/Shared/Common/Device.cs                                                                    |    2 
 ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/CompoundControls/SceneFunctionSwitchControl.cs |    9 
 ZigbeeApp/Shared/Phone/Device/Logic/SoneLogicList.cs                                                 |  224 +++++++++--------
 12 files changed, 264 insertions(+), 480 deletions(-)

diff --git a/ZigbeeApp/Shared/Common/Device.cs b/ZigbeeApp/Shared/Common/Device.cs
index 8426b1a..6431441 100755
--- a/ZigbeeApp/Shared/Common/Device.cs
+++ b/ZigbeeApp/Shared/Common/Device.cs
@@ -2894,7 +2894,7 @@
             this.dicDeviceModelIdEnum["MGCD01/ZB.10"] = "1306-1200-60000";//鍚搁《鐕冩皵浼犳劅鍣�
 
             //PM2.5绌烘皵璐ㄩ噺浼犳劅鍣� 銆愯璁惧灞炰簬绗笁鏂硅澶囷紝娌℃湁闀滃儚ID銆�
-            this.dicDeviceModelIdEnum["SZ_PM100"] = "1307-1200-60000";//PM2.5绌烘皵璐ㄩ噺浼犳劅鍣� 
+            this.dicDeviceModelIdEnum["MSPM25/M-ZB.10"] = "1307-1200-60000";//PM2.5绌烘皵璐ㄩ噺浼犳劅鍣� 
 
             //=========鈽呪槄缁х數鍣ㄧ被(2300-2499)鈽呪槄=========
             this.dicDeviceModelIdEnum["MPR0310-ZB.10"] = "2300-2300-60001";//3璺户鐢靛櫒灏忔ā鍧�
diff --git a/ZigbeeApp/Shared/Phone/Category/AddOrEditorSceneForm.cs b/ZigbeeApp/Shared/Phone/Category/AddOrEditorSceneForm.cs
index 4ff409d..0c86547 100755
--- a/ZigbeeApp/Shared/Phone/Category/AddOrEditorSceneForm.cs
+++ b/ZigbeeApp/Shared/Phone/Category/AddOrEditorSceneForm.cs
@@ -864,6 +864,15 @@
                 //鍙樻洿鎴块棿
                 HdlSceneLogic.Current.ChangedSceneRoom(this.editorScene, this.nowRoomId);
             }
+            else
+            {
+                //绉婚櫎鍑烘埧闂�
+                var room = HdlRoomLogic.Current.GetRoomBySceneId(this.editorScene.Id);
+                if (room != null)
+                {
+                    HdlSceneLogic.Current.DeleteSceneFromRoom(room, this.editorScene);
+                }
+            }
 
             //鍥剧墖鏀瑰彉浜�
             if (isScenePictrueChanged == true)
diff --git a/ZigbeeApp/Shared/Phone/Device/Logic/SkipView.cs b/ZigbeeApp/Shared/Phone/Device/Logic/SkipView.cs
index db1cadf..4e0ee88 100755
--- a/ZigbeeApp/Shared/Phone/Device/Logic/SkipView.cs
+++ b/ZigbeeApp/Shared/Phone/Device/Logic/SkipView.cs
@@ -13,13 +13,14 @@
         /// <summary>
         /// 鍏跺畠鐣岄潰璺宠繘鏉ョ殑鍏ュ彛
         /// </summary>
-        public static void SkipAddLogic(int intvalue, DoorLock doorLock = null, UserCenter.MemberInfoRes accountObj = null)
+        public async static void SkipAddLogic(int intvalue, DoorLock doorLock = null, UserCenter.MemberInfoRes accountObj = null) 
         {
             /// 0.姝e父鑷姩鍖�;1.闂ㄩ攣鑷姩鍖�;2.Sone闂ㄩ攣;
             switch (intvalue)
             {
                 case 0:
                     {
+
                         //new涓�涓柊閫昏緫瀵硅薄锛�
                         //鏂板姝e父鑷姩鍖栧叆鍙�
                         Common.Logic.CurrentLogic = new Common.Logic();
@@ -60,7 +61,7 @@
                         doorLockLogicList.Show();
                     }
                     break;
-              
+
             }
 
         }
diff --git a/ZigbeeApp/Shared/Phone/Device/Logic/SoneLogicList.cs b/ZigbeeApp/Shared/Phone/Device/Logic/SoneLogicList.cs
index cbe8716..ca7438c 100755
--- a/ZigbeeApp/Shared/Phone/Device/Logic/SoneLogicList.cs
+++ b/ZigbeeApp/Shared/Phone/Device/Logic/SoneLogicList.cs
@@ -38,7 +38,7 @@
         /// <summary>
         /// 鏃堕棿鎴�
         /// </summary>
-        public int timeLong = 0;
+        public long timeLong = 0;
         public async void Show()
         {
 
@@ -80,14 +80,8 @@
                     {
                         //杩涙潵鏇存柊涓�娆″��
                         logicId = logic.LogicId;
-                        timeValue = int.Parse(logic.Conditions[0]["DoorLockOpenDelayTime"]);
-                        if (UserCenter.UserCenterResourse.HideOption.DoorLockNomallyOpenTimeMode == 1)
-                        {
-                            //寮哄埗鍙樻洿鏃堕棿妯″紡涓哄垎閽�
-                            timeValue = timeValue / 60;
-                        }
-                    
-                        timeLong = int.Parse(logic.Conditions[0]["TriggerTime"]);
+                        timeValue = int.Parse(logic.Conditions[0]["DoorLockOpenDelayTime"]) / 3600;
+                        timeLong = long.Parse(logic.Conditions[0]["TriggerTime"]);
 
                     }
                     catch { }
@@ -104,6 +98,7 @@
             };
             middle.AddChidren(fLayout);
             #endregion
+
             #region 甯稿紑鑷姩鍖�
             ///绗笁鍧楃涓�绾х埗鎺т欢
             listLogicFl = new FrameLayout
@@ -309,53 +304,59 @@
                     }
                 };
 
-                ///鏄剧ず澶辨晥璁剧疆鏃堕棿鏂囨湰鎺т欢
-                var timeTextBtn = new Button
-                {
-                    Y = Application.GetRealHeight(127 + 69),
-                    X = Application.GetRealWidth(86),//125
-                    Width = Application.GetRealWidth(907),//634 + 200
-                    Height = Application.GetRealHeight(60),
-                    TextSize = 15,
-                    TextColor = ZigbeeColor.Current.LogicTextBlackColor,
-                };
+               
                 if (logicId != 0)
                 {
+                    ///鏄剧ず澶辨晥璁剧疆鏃堕棿鏂囨湰鎺т欢
+                    var timeTextBtn = new Button
+                    {
+                        Y = Application.GetRealHeight(127 + 69),
+                        X = Application.GetRealWidth(80),//125
+                        Width = Application.GetRealWidth(907+12),//634 + 200
+                        Height = Application.GetRealHeight(60),
+                        TextSize = 15,
+                        TextColor = ZigbeeColor.Current.LogicTextBlackColor,
+                    };
                     openModeFl.AddChidren(timeTextBtn);
+
                     string text1 = Language.StringByID(MyInternationalizationString.timeSensitive);
                     string text2 = Language.StringByID(MyInternationalizationString.yearSone);
                     string text3 = Language.StringByID(MyInternationalizationString.monthSone);
                     string text4 = Language.StringByID(MyInternationalizationString.numberSone);
                     string text5 = Language.StringByID(MyInternationalizationString.hour1);
                     string text6 = Language.StringByID(MyInternationalizationString.executeSone);
+                    string year = "";
+                    string month = "";
+                    int days = 0;
+                    int hour = 0;
+                    int minute = 0;
+
                     if (_if)
                     {
-
                         ///绗竴娆¤繘鏉ヨ鍙栫綉鍏虫椂闂达紱
                         var datetime = GetLocalTime(timeLong);
                         ///鏈夋椂鏁堟�у父寮�鎵嶆樉绀烘椂闂存潯浠舵枃鏈�
-                        var y = datetime.Year.ToString();//閭d竴骞�
-                        var m = datetime.Month.ToString();//閭d竴鏈�
-                        var d = datetime.ToString("dd");//閭d竴澶�
-                        var h = int.Parse(datetime.ToString("HH"));//灏忔椂                   
-                        int minute = datetime.Minute;//鍒嗛挓
-                        timeTextBtn.Text = text1 + y + text2 + m + text3 + d + text4 + h + text5 + minute.ToString() + text6;
-
+                        year = datetime.Year.ToString();//閭d竴骞�
+                        month = datetime.Month.ToString();//閭d竴鏈�
+                        days = int.Parse(datetime.ToString("dd"));//閭d竴澶�
+                        hour = int.Parse(datetime.ToString("HH"));//灏忔椂                   
+                        minute = datetime.Minute;//鍒嗛挓
                     }
                     else
                     {
 
-                        ///鏈夋椂鏁堟�у父寮�鎵嶆樉绀烘椂闂存潯浠舵枃鏈�
-                        var y = DateTime.Now.Year.ToString();//閭d竴骞�
-                        var m = DateTime.Now.Month.ToString();//閭d竴鏈�
+
+                        ///鍦ㄥ綋鍓嶇晫闈㈢紪杈戞樉绀虹郴缁熸椂闂�(涓嶈兘姣忎竴娆$紪杈戦兘鍘荤綉鍏虫嬁鏁版嵁)
+                        year = DateTime.Now.Year.ToString();//閭d竴骞�
+                        month = DateTime.Now.Month.ToString();//閭d竴鏈�
                         var d = DateTime.Now.ToString("dd");//閭d竴澶�
                         var h = int.Parse(DateTime.Now.ToString("HH"));//灏忔椂
-                        int dayInt = (h + timeValue) / 24;//绠楀嚭鍑犲ぉ鍚庢墽琛�
-                        int hour = (h + timeValue) % 24;//绠楀嚭鍑犲ぉ鍚庨偅涓椂闂存墽琛�
-                        int days = int.Parse(d) + dayInt;
-                        int minute = DateTime.Now.Minute;//鍒嗛挓
-                        timeTextBtn.Text = text1 + y + text2 + m + text3 + days.ToString() + text4 + hour.ToString() + text5 + minute.ToString() + text6;
+                        int dayInt = (h + timeValue) / 24;//璁剧疆鏃堕棿+褰撳墠绯荤粺鏃堕棿鏄惁瓒呭嚭24灏忔椂
+                        hour = (h + timeValue) % 24;//璁剧疆鏃堕棿+褰撳墠绯荤粺鏃堕棿鏄惁瓒呭嚭24灏忔椂鍓╀笅澶氬皯灏忔椂
+                        days = int.Parse(d) + dayInt;//褰撳墠绯荤粺澶╂暟+鎵ц鍚庡ぉ鏁�
+                        minute = DateTime.Now.Minute;//鍒嗛挓
                     }
+                    timeTextBtn.Text = text1 + year + text2 + month + text3 + days.ToString() + text4 + hour.ToString() + text5 + minute.ToString() + text6;
                 }
 
 
@@ -410,66 +411,66 @@
                 };
                 modeFl.AddChidren(clickBtn);
                 clickBtn.MouseUpEventHandler += (sender, e) =>
-                 {
+                {
 
-                     LogicView.TipView.ShowConfrimTip(() =>
-                     {///鍐嶆纭
-                         LogicView.TipView.ShowInputTip(true, async (str) =>
-                          {///纭鍙戦�佸懡浠�
-                              CommonPage.Loading.Start();
-                              try
-                              {
-                                  ///xm
-                                  var result = await UserCenter.DoorLock.DoorLockCommonInfo.SetNormallyOpenModeFuncAsync(Send.CurrentDoorLock);
-                                  if (!result)
-                                  {
-                                      LogicView.TipView.ShowFlashTip(Language.StringByID(MyInternationalizationString.openFailed));
-                                      return;
-                                  }
-                                  else
-                                  {
-                                      ///鍥犱负鏈夊父寮�妯″紡涓嬫墠鍙互鍒涘缓澶辨晥閫昏緫锛�
-                                      SkipView.GetLogicAll(Send.CurrentDoorLock);//鍒犻櫎涔嬪墠鎵�鏈夊け鏁堥�昏緫
-                                      var addResult = await SkipView.LockAddModifyLogic(int.Parse(str), Send.CurrentDoorLock);//娣诲姞涓�鏉″け鏁堥�昏緫
-                                      if (addResult == 0)
-                                      {
-                                          ///鍙璇村鏋滃父寮�妯″紡寮�锛屽垱寤鸿嚜鍔ㄥ寲澶辫触锛岄偅涔堝皢瑕佸彂涓�鏉″父寮�妯″紡鍏抽棴鍛戒护;
-                                          UserCenter.DoorLock.DoorLockCommonInfo.DelNormallyOpenMode(Send.CurrentDoorLock);
-                                          ///鎻愮ず澶辫触
-                                          LogicView.TipView.ShowFlashTip(Language.StringByID(MyInternationalizationString.addFailed));
-                                          return;
-                                      }
-                                      else
-                                      {
-                                          logicId = addResult;
-                                          timeValue = int.Parse(str);
-                                          Send.CurrentDoorLock.IsDoorLockNormallyMode = true;
-                                          _if = false;
-                                          ModeView();
-                                          ///娣诲姞APP寮�鍚父寮�妯″紡鐨勫巻鍙茶褰�
-                                          UserCenter.HdlDeviceDoorLockLogic.Current.AddDoorHistoryLog(Send.CurrentDoorLock, 9001, string.Empty);
-                                      }
+                    LogicView.TipView.ShowConfrimTip(() =>
+                    {///鍐嶆纭
+                        LogicView.TipView.ShowInputTip(true, async (str) =>
+                        {///纭鍙戦�佸懡浠�
+                            CommonPage.Loading.Start();
+                            try
+                            {
+                                ///xm
+                                var result = await UserCenter.DoorLock.DoorLockCommonInfo.SetNormallyOpenModeFuncAsync(Send.CurrentDoorLock);
+                                if (!result)
+                                {
+                                    LogicView.TipView.ShowFlashTip(Language.StringByID(MyInternationalizationString.openFailed));
+                                    return;
+                                }
+                                else
+                                {
+                                    ///鍥犱负鏈夊父寮�妯″紡涓嬫墠鍙互鍒涘缓澶辨晥閫昏緫锛�
+                                    SkipView.GetLogicAll(Send.CurrentDoorLock);//鍒犻櫎涔嬪墠鎵�鏈夊け鏁堥�昏緫
+                                    var addResult = await SkipView.LockAddModifyLogic(int.Parse(str), Send.CurrentDoorLock);//娣诲姞涓�鏉″け鏁堥�昏緫
+                                    if (addResult == 0)
+                                    {
+                                        ///鍙璇村鏋滃父寮�妯″紡寮�锛屽垱寤鸿嚜鍔ㄥ寲澶辫触锛岄偅涔堝皢瑕佸彂涓�鏉″父寮�妯″紡鍏抽棴鍛戒护;
+                                        UserCenter.DoorLock.DoorLockCommonInfo.DelNormallyOpenMode(Send.CurrentDoorLock);
+                                        ///鎻愮ず澶辫触
+                                        LogicView.TipView.ShowFlashTip(Language.StringByID(MyInternationalizationString.addFailed));
+                                        return;
+                                    }
+                                    else
+                                    {
+                                        logicId = addResult;
+                                        timeValue = int.Parse(str);
+                                        Send.CurrentDoorLock.IsDoorLockNormallyMode = true;
+                                        _if = false;
+                                        ModeView();
+                                        ///娣诲姞APP寮�鍚父寮�妯″紡鐨勫巻鍙茶褰�
+                                        UserCenter.HdlDeviceDoorLockLogic.Current.AddDoorHistoryLog(Send.CurrentDoorLock, 9001, string.Empty);
+                                    }
 
 
-                                  }
-                              }
-                              catch
-                              {
+                                }
+                            }
+                            catch
+                            {
 
-                              }
-                              finally
-                              {
-                                  Application.RunOnMainThread(() =>
-                                  {
-                                      CommonPage.Loading.Hide();
+                            }
+                            finally
+                            {
+                                Application.RunOnMainThread(() =>
+                                {
+                                    CommonPage.Loading.Hide();
 
-                                  });
-                              }
-                          });
+                                });
+                            }
+                        });
 
-                     });
+                    });
 
-                 };
+                };
             }
             listLogicFl.Y = fLayout.Bottom;
             listLogicFl.X = Application.GetRealWidth(58);
@@ -477,7 +478,7 @@
             listLogicFl.Width = Application.GetRealWidth(1022);
             listLogicFl.BackgroundColor = ZigbeeColor.Current.LogicBlankBackgroundColor;
 
-            verticalRefresh.Y = Application.GetRealHeight(187); 
+            verticalRefresh.Y = Application.GetRealHeight(187);
             verticalRefresh.X = Application.GetRealWidth(46);
             verticalRefresh.Height = listLogicFl.Height - Application.GetRealHeight(187);//鍔ㄦ�佹敼鍔ㄤ笂涓嬫粦鍔╲iew楂樺害;
             verticalRefresh.Width = listLogicFl.Width - Application.GetRealWidth(46);
@@ -488,10 +489,10 @@
         /// <param name="yes"></param>
         private async void Read(bool yes)
         {
-            if (yes)
-            {
-                CommonPage.Loading.Start();
-            }
+            //if (yes)
+            // {
+            CommonPage.Loading.Start();
+            // }
             try
             {
                 if (Common.Logic.SoneLogicList.Count == 0)
@@ -519,13 +520,20 @@
             {
                 var dd = e.Message;
             }
-            //鑷姩鍖�
-            RefreshView();
-            if (yes)
+            finally
             {
-                CommonPage.Loading.Hide();
+                Application.RunOnMainThread(() =>
+                {
+                    // if (yes)
+                    // {
+                    CommonPage.Loading.Hide();
+                    // }
+                    //鑷姩鍖�
+                    RefreshView();
 
+                });
             }
+
         }
         /// <summary>
         /// 璁板綍宸︽粦鐘舵��
@@ -542,6 +550,7 @@
             {
                 if (!SkipView.ExistLogic(logic, Send.CurrentDoorLock))
                 {
+                    ///涓嶆槸璇ラ棬閿佽嚜鍔ㄥ寲灏变笉鏄剧ず鍑烘潵;
                     continue;
                 }
                 #region  鑷姩鍖栧竷灞�View
@@ -701,17 +710,22 @@
                 };
             }
         }
-
         /// <summary>
-        /// 灏哢NIX鏃堕棿鎴宠浆鎹㈡垚绯荤粺鏃堕棿(绮剧‘鍒扮)
+        /// 鏃堕棿鎴宠浆鎹㈡垚鏃堕棿鏍煎紡
+        /// </summary>
+        /// <param name="unixTimeStamp">鏃堕棿鎴�</param>
         /// <returns></returns>
-        public DateTime GetLocalTime(int unixTimeStamp)
+        public DateTime GetLocalTime(long unixTimeStamp)
         {
-            DateTime dtStart = TimeZone.CurrentTimeZone.ToLocalTime(new DateTime(1970, 1, 1));
-            long lTime = long.Parse(unixTimeStamp + "0000000");
-            TimeSpan toNow = new TimeSpan(lTime);
-            DateTime dtResult = dtStart.Add(toNow);
-            return dtResult;
+            //DateTime dtStart = TimeZone.CurrentTimeZone.ToLocalTime(new DateTime(1970, 1, 1));
+            //long lTime = long.Parse(unixTimeStamp + "0000000");
+            //TimeSpan toNow = new TimeSpan(lTime);
+            //DateTime dtResult = dtStart.Add(toNow);
+            //return dtResult;
+
+            System.DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new System.DateTime(1970, 1, 1)); // 褰撳湴鏃跺尯
+            return startTime.AddMilliseconds(unixTimeStamp);
+
         }
     }
 }
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/CompoundControls/SceneFunctionSwitchControl.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/CompoundControls/SceneFunctionSwitchControl.cs
index 484e815..b503b18 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/CompoundControls/SceneFunctionSwitchControl.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/CompoundControls/SceneFunctionSwitchControl.cs
@@ -56,8 +56,11 @@
         ///  鍒濆鍖栨帶浠�(浜嬩欢瑕佽嚦浜庡畠涔嬪墠)
         /// </summary>
         /// <param name="listTitleText">鑿滃崟鏂囧瓧鍒楄〃</param>
-        public void InitControl(List<string> listTitleText)
+        /// <param name="rightSpace">鍙宠竟绌虹櫧瀹藉害</param>
+        public void InitControl(List<string> listTitleText, int rightSpace = 0)
         {
+            if (listTitleText.Count == 0) { return; }
+
             var btnTemp = new NormalViewControl(10, 10, false);
             btnTemp.TextSize = 16;
 
@@ -69,6 +72,8 @@
                 //寮�濮嬪垵濮嬪寲
                 XX = this.InitTitleTextControl(i, listTitleText[i], btnTemp.GetRealWidthByText(), XX);
             }
+            //璋冩暣鎺т欢瀹藉害
+            this.Width = XX + Application.GetRealWidth(rightSpace);
             //鍥炶皟鏂规硶
             this.frameDefult.ButtonClickEvent?.Invoke(null, null);
         }
@@ -109,7 +114,7 @@
 
             //搴曠嚎
             var btnLine = new NormalViewControl(40, 10, true);
-            btnLine.Y = btnName.Bottom + Application.GetRealHeight(14);
+            btnLine.Y = btnName.Bottom + Application.GetRealHeight(6);
             btnLine.X = btnName.X + btnName.Width / 2 - Application.GetRealWidth(40) / 2;
             btnLine.Radius = (uint)Application.GetRealHeight(10) / 2;
             btnLine.BackgroundColor = UserCenterColor.Current.TextOrangeColor;
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlGatewayReceiveLogic.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlGatewayReceiveLogic.cs
index f64c0b6..2e8ec34 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlGatewayReceiveLogic.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlGatewayReceiveLogic.cs
@@ -600,8 +600,7 @@
         /// <param name="receiveData"></param>
         private void DoorLockDeviceReportPush(JObject receiveData)
         {
-            //鍙湁寰愭鐨勯棬閿佺晫闈㈡病鏈夋墦寮�鐨勬儏鍐典笅,鎵嶄細澶勭悊杩欎釜涓滆タ
-            if (ControlCommonResourse.IsDoorLockPageOpen == false && UserCenterResourse.UserInfo.AuthorityNo == 1)
+            if (UserCenterResourse.UserInfo.AuthorityNo == 1)
             {
                 var device = Common.LocalDevice.Current.GetDevice(receiveData.Value<string>("DeviceAddr"), receiveData.Value<int>("Epoint"));
                 if (device.Type != DeviceType.DoorLock)
@@ -609,31 +608,27 @@
                     //瀹冧笉鏄棬閿�
                     return;
                 }
+
                 var info = Newtonsoft.Json.JsonConvert.DeserializeObject<DoorLockAlarmsResult>(receiveData["Data"].ToString());
                 if (info.Clusterid == 257)
                 {
-                    //甯稿紑妯″紡鍏抽棴
-                    if (info.AlarmCode == 217 || info.AlarmCode == 219)
+                    //216锛氶攣涓婅缃殑甯稿紑 
+                    if (info.AlarmCode == 216)
                     {
-                        HdlThreadLogic.Current.RunThread(async () =>
+                        HdlThreadLogic.Current.RunMain(() =>
                         {
-                            //娓╁眳鍩庣殑瑕佺綉鍏充腑鏄惁鏈夐�昏緫瀛樺湪 
-                            //鍙傛暟:2-甯稿紑鑷姩鍖�;3-澶辨晥鏃堕棿鑷姩鍖�
-                            var result = await Shared.Phone.Device.Logic.SkipView.Exist(3, (ZigBee.Device.DoorLock)device);
-                            HdlThreadLogic.Current.RunMain(() =>
+                            //鏇存柊闂ㄩ攣娑夊強鐨勫父寮�/甯稿叧鐨勭晫闈�
+                            if (UserCenter.DoorLock.DoorLockCommonInfo.UpdateCurrentDoorlockAction != null)
                             {
-                                //寮瑰嚭寰愭鐨勯偅涓獥鍙�
-                                DoorLock.DoorLockCommonInfo.NomallyOpenModeInvalidDialog((ZigBee.Device.DoorLock)device, DoorLock.DoorLockCommonInfo.DoorLockMessType.ServicePush,
-                                    result != 0 ? true : false, null);
-                            });
+                                UserCenter.DoorLock.DoorLockCommonInfo.UpdateCurrentDoorlockAction(device.DeviceAddr + device.DeviceEpoint, true);
+                            }
                         });
                     }
                 }
+                //鏄剧ず鏈夋柊娑堟伅鐨勭壒鏁�
+                this.ShowHadNewMessageAppeal();
             }
-            //鏄剧ず鏈夋柊娑堟伅鐨勭壒鏁�
-            this.ShowHadNewMessageAppeal();
         }
-
         #endregion
 
         #region 鈻� 璁惧鍦ㄧ嚎鐘舵�佹洿鏂板弽棣坃______________
@@ -642,7 +637,7 @@
         /// 璁惧鍦ㄧ嚎鐘舵�佹洿鏂板弽棣�
         /// </summary>
         /// <param name="receiveData"></param>
-        private void DeviceOnlineChangePush (JObject receiveData)
+        private void DeviceOnlineChangePush(JObject receiveData)
         {
             if (this.dicDeviceEvent.Count == 0)
             {
@@ -827,29 +822,36 @@
             //鏄剧ず鏈夋柊娑堟伅鐨勭壒鏁�
             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);
-            //        });
-            //    }
-            //}
-        }
+            // 閫昏緫鎵ц甯稿紑妯″紡澶辨晥鐨勬儏鍐�
+            if (UserCenterResourse.UserInfo.AuthorityNo == 1)
+            {
+                //鑷姩鍖栨墽琛� 甯稿紑鍏抽棴
+                var data = Newtonsoft.Json.JsonConvert.DeserializeObject<LogicPushResult>(receiveData["Data"].ToString());
+                if (data != null && data.ActionData != null)
+                {
+                    if (data.ActionData.Actiontype == 8 && data.ActionData.PassDataString == "055704010113")
+                    {
+                        var deviceAddr = data.ActionData.MacStr;
+                        var device = Common.LocalDevice.Current.GetDevicesByMac(deviceAddr, false);
+                        if (device.Count > 0 && device[0].Type != DeviceType.DoorLock)
+                        {
+                            return;
+                        }
 
+                        HdlThreadLogic.Current.RunThread(async () =>
+                        {
+                            var result = await Shared.Phone.Device.Logic.SkipView.Exist(3, (ZigBee.Device.DoorLock)device[0]);
+                            HdlThreadLogic.Current.RunMain(() =>
+                            {
+                                //寮瑰嚭寰愭鐨勯偅涓獥鍙�
+                                DoorLock.DoorLockCommonInfo.NomallyOpenModeInvalidDialog((ZigBee.Device.DoorLock)device[0], DoorLock.DoorLockCommonInfo.DoorLockMessType.ServicePush,
+                                    result != 0 ? true : false, ControlCommonResourse.UpdateDoorLockStatusAction);
+                            });
+                        });
+                    }
+                }
+            }
+        }
         #endregion
 
         #region 鈻� 鍦烘櫙瑙﹀彂涓婃姤_______________________
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Resourse/ControlCommonResourse.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Resourse/ControlCommonResourse.cs
index b5f2c64..aef9c47 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Resourse/ControlCommonResourse.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Resourse/ControlCommonResourse.cs
@@ -65,9 +65,9 @@
         /// </summary>
         public static int BottomLineHeight = 1;
         /// <summary>
-        /// 寰愭鐨勯棬閿佺晫闈㈡槸鍚︽槸鎵撳紑鐨勭姸鎬�
+        /// 闂ㄩ攣鐣岄潰鏄惁鏄洿鏂扮姸鎬�
         /// </summary>
-        public static bool IsDoorLockPageOpen = false;
+        public static Action<bool> UpdateDoorLockStatusAction = null;
         /// <summary>
         /// 鏄惁鏄晫闈㈡鍦ㄥ姞杞戒腑(搴曞眰涓撶敤,涓嶉渶瑕佺悊)
         /// </summary>
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/BindTargetsPage.cs b/ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/BindTargetsPage.cs
index b6b4a78..32eb48b 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/BindTargetsPage.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/BindTargetsPage.cs
@@ -1164,6 +1164,16 @@
                 removeDevice.BindMacAddr = bindDevice.BindMacAddr;
                 removeDevice.BindEpoint = bindDevice.BindEpoint;
                 delDevice.RemoveBindList.Add(removeDevice);
+                //鏄寒搴﹀啀娆″彂鍒犻櫎6鐨勫懡浠�
+                if (currentClusterID == 8)
+                {
+                    var removeDevice2 = new RemoveBindListObj();
+                    removeDevice2.BindCluster = 6;
+                    removeDevice2.BindType = 0;
+                    removeDevice2.BindMacAddr = bindDevice.BindMacAddr;
+                    removeDevice2.BindEpoint = bindDevice.BindEpoint;
+                    delDevice.RemoveBindList.Add(removeDevice2);
+                }
             }
             else if (bindDevice.BindType == 2)
             {
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/DoorLockCommonInfo.cs b/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/DoorLockCommonInfo.cs
index 9989e00..801c052 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/DoorLockCommonInfo.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/DoorLockCommonInfo.cs
@@ -15,6 +15,10 @@
         /// </summary>
         public static Action<bool> LogicAction = null;
         /// <summary>
+        /// 鏇存柊褰撳墠闂ㄩ攣娑夊強鐨勭姸鎬併�愪富瑕佺敤浜庨棬閿佹搷浣滃父寮�妯″紡鐨勫洖璋冦��
+        /// </summary>
+        public static Action<string, bool> UpdateCurrentDoorlockAction = null;
+        /// <summary>
         /// 缃戝叧锛堥棬閿侊級鎵�鍦ㄧ殑鏃堕棿
         /// </summary>
         public static DateTime DoorlockZoneTime = DateTime.Now;
@@ -217,12 +221,6 @@
                     //涓婃姤鈥滃父寮�妯″紡鈥濆凡琚彇娑�
                     Application.RunOnMainThread(() => { CommonPage.Loading.Start(""); });
 
-                    if (haveLogic)
-                    {
-                        //姝ゅ鍒犻櫎娓╁眳鍩庣殑甯稿紑妯″紡鐗规畩閫昏緫
-                        var resTemp1 = await Shared.Phone.Device.Logic.SkipView.GetLogicAll(doorLock);
-                    }
-
                     //app閲嶆柊寮�鍚�滃父寮�妯″紡鈥�
                     var result = await doorLock.SetNormallyOpenModeFuncAsync(true);
                     if (result == null || result.defaultControlResponseData == null)
@@ -262,8 +260,6 @@
                     }
                     else
                     {
-                        //鍒涘缓甯稿紑妯″紡鐨勭壒娈婇�昏緫 
-                        var resu = await Shared.Phone.Device.Logic.SkipView.LockAddModifyLogic(DoorLockCommonInfo.NormallyOpenModeInvalidTime, doorLock);
                         Application.RunOnMainThread(() =>
                         {
                             string msg0 = Language.StringByID(R.MyInternationalizationString.OpenNormallyOpenModeSuccess);
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/FunctionSetting.cs b/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/FunctionSetting.cs
index b9b2672..8d69a71 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/FunctionSetting.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/FunctionSetting.cs
@@ -73,12 +73,6 @@
             EventHandler<MouseEventArgs> eHandlerBack = (sender, e) =>
             {
                 RemoveFromParent();
-                UserDoorLockPage.canShowDialog = true;
-                //鏆傛椂涓嶈�冭檻涓嬬骇鐣岄潰绛夋帹閫佸鑷村父寮�妯″紡澶辨晥鐨勯棶棰�
-                //var userDoorLockPage = new UserDoorLockPage(currentRoom, deviceUI);
-                //HomePage.Instance.AddChidren(userDoorLockPage);
-                //HomePage.Instance.PageIndex += 1;
-                //userDoorLockPage.Show();
             };
             this.btnBack.MouseUpEventHandler += eHandlerBack;
             this.btnBackFrameLayout.MouseUpEventHandler += eHandlerBack;
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/UserDoorLockPage.cs b/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/UserDoorLockPage.cs
index 7de8403..0562afe 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/UserDoorLockPage.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/UserDoorLockPage.cs
@@ -17,12 +17,29 @@
         public UserDoorLockPage(Room room, CommonDevice doorLock)
         {
             //寰愭鐨勯棬閿佺晫闈㈡墦寮�(缃戝叧鍏ㄥ眬鎺ユ敹鏃朵娇鐢�)
-            ControlCommonResourse.IsDoorLockPageOpen = true;
+            //ControlCommonResourse.IsDoorLockPageOpen = true; 
             this.doorLock = doorLock as ZigBee.Device.DoorLock;
             currentRoom = room;
             deviceUI = doorLock;
             BackgroundColor = ZigbeeColor.Current.GXCTopViewBackgroundColor;
             ZbGateway.StatusList.Add(this);
+            Application.RunOnMainThread(() =>
+            {
+                ControlCommonResourse.UpdateDoorLockStatusAction = (obj) =>
+                {
+                    UpdateNomallyOpenStatus();
+                };
+
+                UserCenter.DoorLock.DoorLockCommonInfo.UpdateCurrentDoorlockAction += (DoorlockKey, status) =>
+                {
+                    var key = doorLock.DeviceAddr + doorLock.DeviceEpoint;
+                    if (DoorlockKey == key)
+                    {
+                        DoorLockCommonInfo.NormallyOpenModeValue(this.doorLock, status);
+                        UpdateNomallyOpenStatus();
+                    }
+                };
+            });
         }
 
         #region  鍙橀噺鐢虫槑
@@ -42,11 +59,6 @@
         /// 閫昏緫涓槸鍚︽湁甯稿紑妯″紡
         /// </summary>
         private bool haveLogicNormallyOpenMode = false;
-
-        /// <summary>
-        /// 闂ㄩ攣娣卞害鎺у埗涓婃姤绐楀彛鏄惁寮瑰嚭
-        /// </summary>
-        public static bool canShowDialog = true;
 
         /// <summary>
         /// 褰撳墠鐢甸噺
@@ -626,6 +638,35 @@
                 }
             }
 
+            //缃戝叧鎵ц閫昏緫锛屽父寮�妯″紡澶辨晥涓婃姤
+            //if (typeTag == "DoorLockAlarmsSendAlarmInform" && tempDevice != null)
+            //{
+            //    var doorL = (ZigBee.Device.DoorLock)tempDevice;
+
+            //    if (doorL.DeviceAddr + doorL.DeviceEpoint == doorLock.DeviceAddr + doorLock.DeviceEpoint)
+            //    {
+            //        //闈炰富浜轰笉寮硅繖涓獥鍙�
+            //        if (UserCenterResourse.UserInfo.AuthorityNo != 1)
+            //        {
+            //            return;
+            //        }
+            //        if (doorLock.IsDoorLockNormallyMode)
+            //        {
+            //            if (canOpenNormallyMode)
+            //            {
+            //                Application.RunOnMainThread(() =>
+            //                {
+            //                    Action<bool> action = (obj) =>
+            //                    {
+            //                        UpdateNomallyOpenStatus();
+            //                    };
+            //                    DoorLockCommonInfo.NomallyOpenModeInvalidDialog(doorLock, DoorLockCommonInfo.DoorLockMessType.ServicePush, haveLogicNormallyOpenMode, action);
+            //                });
+            //            }
+            //        }
+            //    }
+            //}
+
             if (typeTag == "DeviceStatusReport" && tempDevice != null)
             {
                 if (tempDevice != null)
@@ -668,7 +709,7 @@
                     canOpenNormallyMode = DoorLockCommonInfo.CanNormallyOpen(doorLock);
                     if (canOpenNormallyMode)
                     {
-                        //鑾峰彇闂ㄩ攣甯稿紑妯″紡
+                        //1銆佽幏鍙栭棬閿佸父寮�妯″紡
                         var resultRes = await DoorLockCommonInfo.GetNormallyOpenMode(doorLock);
                         if (resultRes == null)
                         {
@@ -692,18 +733,19 @@
                                 tempRes = false;
                             }
                             DoorLockCommonInfo.NormallyOpenModeValue(doorLock, tempRes);
-                            Application.RunOnMainThread(async () =>
-                            {
-                                var resTemp = await Shared.Phone.Device.Logic.SkipView.Exist(3,doorLock);
-                                if (resTemp == 1)
-                                {
-                                    haveLogicNormallyOpenMode = true;
-                                }
-                                else if (resTemp == 0)
-                                {
-                                    haveLogicNormallyOpenMode = false;
-                                }
-                            });
+
+                            //Application.RunOnMainThread(async () =>
+                            //{
+                            //var resTemp = await Shared.Phone.Device.Logic.SkipView.Exist(3, doorLock);
+                            //if (resTemp == 1)
+                            //{
+                            //    haveLogicNormallyOpenMode = true;
+                            //}
+                            //else if (resTemp == 0)
+                            //{
+                            //    haveLogicNormallyOpenMode = false;
+                            //}
+                            //});
                         }
                     }
                     else
@@ -718,7 +760,7 @@
                     canVolume = DoorLockCommonInfo.CanVolume(doorLock);
                     if (canVolume)
                     {
-                        //璇诲彇闊抽噺 
+                        //2銆佽鍙栭煶閲� 
                         var resultRes = await doorLock.GetVolumeAsync();
                         if (resultRes == null || resultRes.volumeResponseData == null)
                         {
@@ -752,7 +794,7 @@
                         });
                     }
 
-                    //璇诲彇闂ㄩ攣鐢甸噺锛氱皣ID锛�1 灞炴�D 33
+                    //3銆佽鍙栭棬閿佺數閲忥細绨嘔D锛�1 灞炴�D 33
                     doorLock.ReadAttri(Cluster_ID.Power, AttriButeId.DoorLockPower);
                     //涓婃姤鐢甸噺绛�1绉�
                     System.Threading.Thread.Sleep(1000);
@@ -798,7 +840,7 @@
                 Shared.Phone.UserView.HomePage.Instance.AddChidren(functionSetting);
                 Shared.Phone.UserView.HomePage.Instance.PageIndex += 1;
                 functionSetting.Show();
-                canShowDialog = false;
+                //DoorLockCommonInfo.canShowDialog = false;
                 functionSetting.devicNameAction += (deviceRename) =>
                 {
                     if (!string.IsNullOrEmpty(deviceRename))
@@ -829,7 +871,7 @@
                 //鍘嗗彶璁板綍 ----   stan
                 var form = new DeviceDoorLock.DoorLockHistoryLogForm();
                 form.AddForm(this.doorLock.DeviceAddr);
-                canShowDialog = false;
+                //DoorLockCommonInfo.canShowDialog = false;
             };
             btnRecordFrameLayout.MouseDownEventHandler += handerRecord;
             btnRecord.MouseDownEventHandler += handerRecord;
@@ -853,7 +895,6 @@
             //寮�閿佷簨浠�
             EventHandler<MouseEventArgs> hander1 = async (sender, e) =>
             {
-                canShowDialog = true;
                 if (doorLock.IsDoorLockNormallyMode)
                 {
                     if (canOpenNormallyMode)
@@ -887,7 +928,6 @@
             //鍏抽攣浜嬩欢
             EventHandler<MouseEventArgs> hander2 = (sender, e) =>
             {
-                canShowDialog = true;
                 if (canOpenNormallyMode)
                 {
                     if (doorLock.IsDoorLockNormallyMode)
@@ -1093,249 +1133,6 @@
         }
 
         /// <summary>
-        /// 甯稿紑妯″紡澶辨晥澶勭悊
-        /// </summary>
-        private void NomallyOpenModeInvalidDialog(bool IsFromReport = false)
-        {
-            if (!canShowDialog)
-            {
-                return;
-            }
-
-            if (UserCenterResourse.UserInfo.AuthorityNo != 1)
-            {
-                this.ShowMassage(ShowMsgType.Tip, Language.StringByID(R.MyInternationalizationString.OnlyMasterOperate));
-                return;
-            }
-            string msg = Language.StringByID(R.MyInternationalizationString.NomallyModeIsCanceled).Replace("{0}", "\r\n");
-            var confirm = Language.StringByID(R.MyInternationalizationString.SureCancel);
-            var alert = new ShowDoorLockMsgControl(ShowDoorLockMsgControl.DoorLockMsgType.NomallyOpenMode, msg, confirm);
-            if (haveLogicNormallyOpenMode)
-            {
-                //鏈夐�昏緫璁剧疆鐨勫脊绐�
-                alert = new ShowDoorLockMsgControl(ShowDoorLockMsgControl.DoorLockMsgType.CancelNomallyOpenModeWithLogic, msg, confirm);
-            }
-            alert.Show();
-
-            alert.MsgControlClickEvent += async () =>
-            {
-                if (IsFromReport)
-                {
-                    //涓婃姤鈥滃父寮�妯″紡鈥濆凡琚彇娑堬紝app榛樿浜嗏�滃父寮�妯″紡鈥濊鍙栨秷 
-                    DoorLockCommonInfo.NormallyOpenModeValue(doorLock, false);
-                    Application.RunOnMainThread(() =>
-                    {
-                        UpdateNomallyOpenStatus();
-                    });
-
-                    if (haveLogicNormallyOpenMode)
-                    {
-                        //姝ゅ鍒犻櫎娓╁眳鍩庣殑甯稿紑妯″紡鐗规畩閫昏緫
-                        var resTemp1 = await Shared.Phone.Device.Logic.SkipView.GetLogicAll(doorLock);
-                    }
-                }
-                else
-                {
-                    //app榛樿鈥滃父寮�妯″紡鈥濊繕鏄紑鍚� 
-                    DoorLockCommonInfo.NormallyOpenModeValue(doorLock, true);
-                    Application.RunOnMainThread(() =>
-                    {
-                        UpdateNomallyOpenStatus();
-                    });
-                }
-            };
-
-            alert.CancelClickEvent += async () =>
-            {
-                if (IsFromReport)
-                {
-                    //涓婃姤鈥滃父寮�妯″紡鈥濆凡琚彇娑�
-                    Application.RunOnMainThread(() => { CommonPage.Loading.Start(""); });
-
-                    if (haveLogicNormallyOpenMode)
-                    {
-                        //姝ゅ鍒犻櫎娓╁眳鍩庣殑甯稿紑妯″紡鐗规畩閫昏緫
-                        var resTemp1 = await Shared.Phone.Device.Logic.SkipView.GetLogicAll(doorLock);
-                    }
-                    //app閲嶆柊寮�鍚�滃父寮�妯″紡鈥�
-                    var result = await doorLock.SetNormallyOpenModeFuncAsync(true);
-                    if (result == null || result.defaultControlResponseData == null)
-                    {
-                        Application.RunOnMainThread(() =>
-                        {
-                            string msg0 = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime);
-                            this.ShowTipMsg(msg0);
-                            DoorLockCommonInfo.NormallyOpenModeValue(doorLock, false);
-                            UpdateNomallyOpenStatus();
-                        });
-                        return;
-                    }
-                    if (result.defaultControlResponseData.status != 0)
-                    {
-                        string msg1 = Language.StringByID(R.MyInternationalizationString.OpenNormallyOpenModeFailed);
-                        this.ShowTipMsg(msg1);
-                        DoorLockCommonInfo.NormallyOpenModeValue(doorLock, false);
-                        Application.RunOnMainThread(() =>
-                        {
-                            UpdateNomallyOpenStatus();
-                        });
-                        return;
-                    }
-                    else
-                    {
-                        //淇濇寔鈥滃父寮�鎴愬姛鈥� 
-                        DoorLockCommonInfo.NormallyOpenModeValue(doorLock, true);
-                        Application.RunOnMainThread(() =>
-                        {
-                            UpdateNomallyOpenStatus();
-                        });
-
-                        //鍒涘缓甯稿紑妯″紡鐨勭壒娈婇�昏緫 
-                        var resu = await Shared.Phone.Device.Logic.SkipView.LockAddModifyLogic(DoorLockCommonInfo.NormallyOpenModeInvalidTime, doorLock);
-                        //if (!resu)
-                        //{
-                        //    string msg0 = Language.StringByID(R.MyInternationalizationString.AddLogicNormallyModeFailed);
-                        //    this.ShowTipMsg(msg0);
-                        //}
-
-                        CommonPage.Loading.Hide();
-                    }
-                }
-                else
-                {
-                    //app鎿嶄綔涓嶅彇娑堚�滃父寮�妯″紡鈥� 
-                    DoorLockCommonInfo.NormallyOpenModeValue(doorLock, true);
-                    Application.RunOnMainThread(() =>
-                    {
-                        UpdateNomallyOpenStatus();
-                    });
-                }
-            };
-
-            alert.ConfirmClickEvent += async () =>
-            {
-                if (IsFromReport)
-                {
-                    //涓婃姤闂ㄩ攣鈥滃父寮�妯″紡鈥濆凡缁忓彇娑堬紝鐜板湪app纭鈥滃父寮�妯″紡鈥濆彇娑� 
-                    DoorLockCommonInfo.NormallyOpenModeValue(doorLock, false);
-                    Application.RunOnMainThread(() =>
-                    {
-                        UpdateNomallyOpenStatus();
-                    });
-
-                    if (haveLogicNormallyOpenMode)
-                    {
-                        //姝ゅ鍒犻櫎娓╁眳鍩庣殑甯稿紑妯″紡鐗规畩閫昏緫
-                        var resTemp1 = await Shared.Phone.Device.Logic.SkipView.GetLogicAll(doorLock);
-                    }
-                }
-                else
-                {
-                    //app鎿嶄綔鍙栨秷鈥滃父寮�妯″紡鈥�
-                    Application.RunOnMainThread(() => { CommonPage.Loading.Start(""); });
-                    var result = await doorLock.SetNormallyOpenModeFuncAsync(false);
-                    if (result == null || result.defaultControlResponseData == null)
-                    {
-                        string msg0 = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime);
-                        this.ShowTipMsg(msg0);
-                        return;
-                    }
-                    if (result.defaultControlResponseData.status != 0)
-                    {
-                        string msg1 = Language.StringByID(R.MyInternationalizationString.CloseNormallyOpenModeFailed);
-                        this.ShowTipMsg(msg1);
-                        return;
-                    }
-                    else
-                    {
-                        //娣诲姞App寮�鍚父寮�妯″紡鐨勫巻鍙茶褰�
-                        HdlDeviceDoorLockLogic.Current.AddDoorHistoryLog(this.doorLock, 9002, string.Empty);
-
-                        //app纭鍙栨秷鈥滃父寮�妯″紡鈥濇垚鍔� 
-                        DoorLockCommonInfo.NormallyOpenModeValue(doorLock, false);
-                        Application.RunOnMainThread(() =>
-                        {
-                            UpdateNomallyOpenStatus();
-                        });
-
-                        if (haveLogicNormallyOpenMode)
-                        {
-                            //姝ゅ鍒犻櫎娓╁眳鍩庣殑甯稿紑妯″紡鐗规畩閫昏緫
-                            var resTemp1 = await Shared.Phone.Device.Logic.SkipView.GetLogicAll(doorLock);
-                        }
-                        string msg2 = Language.StringByID(R.MyInternationalizationString.CloseNormallyOpenModeSuccess);
-                        this.ShowTipMsg(msg2);
-                    }
-                }
-            };
-        }
-
-        /// <summary>
-        /// 宸茬粡寮�鍚父寮�妯″紡鎻愮ず
-        /// </summary>
-        public void AlreadyOpenNormallyMode()
-        {
-            //甯稿紑妯″紡寮�鍚彁绀�
-            string msgNomallyModeIsTurnOn = Language.StringByID(R.MyInternationalizationString.NomallyModeIsTurnOn);
-            var doorLockInValidSetting = Language.StringByID(R.MyInternationalizationString.DoorLockInValidSetting);
-            var alertNomallyModeIsTurnOn = new ShowDoorLockMsgControl(ShowDoorLockMsgControl.DoorLockMsgType.DoorLockLogic, msgNomallyModeIsTurnOn, doorLockInValidSetting);
-            alertNomallyModeIsTurnOn.Show();
-            alertNomallyModeIsTurnOn.MsgControlClickEvent += async () =>
-            {
-                //榛樿鍒涘缓甯稿紑妯″紡鐨勭壒娈婇�昏緫 
-                var res = await Shared.Phone.Device.Logic.SkipView.LockAddModifyLogic(DoorLockCommonInfo.NormallyOpenModeInvalidTime, doorLock);
-                //if (!res)
-                //{
-                //string msg0 = Language.StringByID(R.MyInternationalizationString.AddLogicNormallyModeFailed);
-                // this.ShowTipMsg(msg0);
-                //return;
-                //}
-            };
-            //鐐瑰嚮鑷姩鍖�
-            alertNomallyModeIsTurnOn.LogicClickEvent += () =>
-            {
-                //閫昏緫璋冪敤鍓嶈寰楃Щ闄�
-                ZbGateway.StatusList.Remove(this);
-                //璋冪敤閫昏緫鐣岄潰
-                Shared.Phone.Device.Logic.SkipView.SkipAddLogic(2, doorLock);
-            };
-            alertNomallyModeIsTurnOn.InvalidClickEvent += async () =>
-            {
-                NomallyOpenModeInvalidTimeDialog();
-            };
-        }
-
-        /// <summary>
-        /// 甯稿紑妯″紡澶辨晥鏃堕棿澶勭悊
-        /// </summary>
-        private void NomallyOpenModeInvalidTimeDialog()
-        {
-            //澶辨晥璁剧疆 
-            string msgTimeInValidSetting = Language.StringByID(R.MyInternationalizationString.DoorLockOpenAllTheTime);
-            var timeConfrim = Language.StringByID(R.MyInternationalizationString.Confrim);
-            var alertTimeInValidSetting = new ShowDoorLockMsgControl(ShowDoorLockMsgControl.DoorLockMsgType.InValid, msgTimeInValidSetting, timeConfrim);
-            alertTimeInValidSetting.Show();
-
-            alertTimeInValidSetting.InvalidTimeAction += async (obj) =>
-             {
-                 //甯稿紑妯″紡澶辨晥鏃堕棿璁剧疆鎴愬姛
-                 var temp = int.Parse(obj);
-                 DoorLockCommonInfo.NormallyOpenModeInvalidTime = temp;
-                 //榛樿鍒涘缓甯稿紑妯″紡鐨勭壒娈婇�昏緫 
-                 var res = await Shared.Phone.Device.Logic.SkipView.LockAddModifyLogic(DoorLockCommonInfo.NormallyOpenModeInvalidTime, doorLock);
-                 if (res == 0)
-                 {
-                     //榛樿鍒涘缓甯稿紑妯″紡澶辫触
-                     string msg0 = Language.StringByID(R.MyInternationalizationString.AddLogicNormallyModeFailed);
-                     var alert = new UserCenter.ShowMsgControl(UserCenter.ShowMsgType.Normal, msg0, Language.StringByID(R.MyInternationalizationString.confrim));
-                     alert.Show();
-                     //浜屾鍔犺浇寮圭獥 甯稿紑妯″紡寮�鍚彁绀�
-                     NomallyOpenModeInvalidTimeDialog();
-                 }
-             };
-        }
-
-        /// <summary>
         /// 甯稿紑妯″紡鐘舵�佹洿鏂�
         /// </summary>
         private void UpdateNomallyOpenStatus()
@@ -1436,7 +1233,9 @@
         public override void RemoveFromParent()
         {
             //寰愭鐨勯棬閿佺晫闈㈠叧闂�(缃戝叧鍏ㄥ眬鎺ユ敹鏃朵娇鐢�)
-            ControlCommonResourse.IsDoorLockPageOpen = false;
+            //ControlCommonResourse.IsDoorLockPageOpen = false;
+            ControlCommonResourse.UpdateDoorLockStatusAction = null;
+            UserCenter.DoorLock.DoorLockCommonInfo.UpdateCurrentDoorlockAction = null;
             if (IsDrawerLockMode)
             {
                 CommonPage.Instance.IsDrawerLockMode = false;
diff --git a/ZigbeeApp/Shared/Phone/ZigBee/Common/Application.cs b/ZigbeeApp/Shared/Phone/ZigBee/Common/Application.cs
index ec0ce95..367c79d 100755
--- a/ZigbeeApp/Shared/Phone/ZigBee/Common/Application.cs
+++ b/ZigbeeApp/Shared/Phone/ZigBee/Common/Application.cs
@@ -334,10 +334,6 @@
         {
             //鏈湴Socket
             public static Socket busSocket;
-            /// <summary>
-            /// 璁℃椂鍣�
-            /// </summary>
-            private static int timeCount = 0;
 
             /// <summary>
             /// 鍚姩Socket鎺ユ敹鍜屽彂閫佸姛鑳�
@@ -395,52 +391,10 @@
             {
                 try
                 {
-                    //妫�娴嬭繛鎺ョ姸鎬�
-                    CheckConnectiton();
-
                     Start(7624);
                     busSocket.BeginSendTo(bytes, 0, bytes.Length, SocketFlags.None, iPEndPoint, new AsyncCallback(asyncEndSend), null);
                 }
                 catch { }
-            }
-
-            /// <summary>
-            /// 妫�娴嬭繛鎺ョ姸鎬�
-            /// </summary>
-            private static void CheckConnectiton()
-            {
-                if (busSocket == null) { return; }
-                timeCount++;
-                if (timeCount < 20)
-                {
-                    //姣�10绉掓娴嬩竴娆�
-                    return;
-                }
-                timeCount = 0;
-
-                bool blockingState = busSocket.Blocking;
-                try
-                {
-                    byte[] tmp = new byte[1];
-
-                    busSocket.Blocking = false;
-                    busSocket.Send(tmp, 0, 0);
-                    //tcp杩樺湪杩炴帴鐫�
-                    busSocket.Blocking = blockingState;
-                }
-                catch (SocketException e)
-                {
-                    // 10035 == WSAEWOULDBLOCK
-                    if (e.NativeErrorCode.Equals(10035))
-                    {
-                        //Still Connected, but the Send would block
-                    }
-                    else
-                    {
-                        //tcp宸茬粡鏂紑浜嗚繛鎺�
-                        Stop();
-                    }
-                }
             }
 
             /// <summary>

--
Gitblit v1.8.0