From 6fa9d69da922c8049f5acfcbb9ce9fd26811024c Mon Sep 17 00:00:00 2001
From: xm <1271024303@qq.com>
Date: 星期四, 16 四月 2020 17:10:57 +0800
Subject: [PATCH] 请合并代码

---
 ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceMacInfoEditorForm.cs |  486 +++++++++++++++++++++++++++++++++++++++++++++++------
 1 files changed, 428 insertions(+), 58 deletions(-)

diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceMacInfoEditorForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceMacInfoEditorForm.cs
index 80c02c8..4865485 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceMacInfoEditorForm.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceMacInfoEditorForm.cs
@@ -2,7 +2,6 @@
 using System.Collections.Generic;
 using System.Threading.Tasks;
 using Shared.Common;
-using Shared.Phone.UserView;
 using ZigBee.Device;
 
 namespace Shared.Phone.UserCenter.Device
@@ -21,7 +20,7 @@
         /// <summary>
         /// 鍒楄〃鎺т欢
         /// </summary>
-        private VerticalListControl listview = null;
+        private FrameListControl listview = null;
         /// <summary>
         /// 璁惧鐨勮澶囩被鍨�
         /// </summary>
@@ -30,6 +29,10 @@
         /// 璁惧鍏蜂綋绫诲瀷鐨勪俊鎭�
         /// </summary>
         private DeviceEnumInfo deviceEnumInfo = null;
+        /// <summary>
+        /// 涓ぎ绌鸿皟鐨勭増鏈帶浠�
+        /// </summary>
+        private NormalViewControl btnAirConditionerVersion = null;
 
         #endregion
 
@@ -42,6 +45,11 @@
         public void ShowForm(string deviceMac)
         {
             this.listNewDevice = Common.LocalDevice.Current.GetDevicesByMac(deviceMac);
+            if (listNewDevice.Count == 0)
+            {
+                //閽堝鍗曠函鍙湁涓�涓�200绔偣鐨勮澶�
+                listNewDevice.Add(Common.LocalDevice.Current.GetOTADevice(deviceMac));
+            }
 
             this.listDeviceType.Clear();
             foreach (var device in listNewDevice)
@@ -53,7 +61,7 @@
             this.deviceEnumInfo = Common.LocalDevice.Current.GetMyDeviceEnumInfo(listNewDevice);
 
             //璁剧疆鏍囬淇℃伅
-            base.SetTitleText(Language.StringByID(R.MyInternationalizationString.uDeviceInfo));
+            base.SetTitleText(Language.StringByID(R.MyInternationalizationString.uDeviceSettion));
 
             //鍒濆鍖栧彸涓婅鑿滃崟
             this.InitTopRightMenu();
@@ -73,15 +81,19 @@
             //娓呯┖bodyFrame
             this.ClearBodyFrame();
 
+            var listBackControl = new VerticalFrameControl();
+            listBackControl.Height = bodyFrameLayout.Height;
+            bodyFrameLayout.AddChidren(listBackControl);
+
             //鍒濆鍖栨甯�
             var tableContr = new InformationEditorControl();
-            this.listview = tableContr.InitControl(bodyFrameLayout, Language.StringByID(R.MyInternationalizationString.uInfoEditor), 369, 1368);
+            this.listview = tableContr.InitControl(listBackControl.frameTable, Language.StringByID(R.MyInternationalizationString.uInfoEditor), 1368);
 
             //鍥剧墖
             var btnPic = new DeviceInfoIconControl();
             btnPic.Y = Application.GetRealHeight(92);
             btnPic.Gravity = Gravity.CenterHorizontal;
-            bodyFrameLayout.AddChidren(btnPic);
+            listBackControl.frameTable.AddChidren(btnPic);
             btnPic.InitControl(listNewDevice[0]);
 
             //璁惧澶囨敞
@@ -116,30 +128,43 @@
             //鍒掔嚎
             btnType.AddBottomLine();
 
-            //鎵�灞炲尯鍩�
+            //瀹夎浣嶇疆
             var rowBeloneArea = new BelongAreaControl(listview.rowSpace / 2);
             listview.AddChidren(rowBeloneArea);
-            rowBeloneArea.InitControl(Language.StringByID(R.MyInternationalizationString.uBelongArea), this.listNewDevice);
+            rowBeloneArea.InitControl(Language.StringByID(R.MyInternationalizationString.uInstallationLocation), this.listNewDevice);
             //搴曠嚎
             rowBeloneArea.AddBottomLine();
 
             var listCheck = new List<string>();
             rowBeloneArea.SelectRoomEvent += (roomKeys) =>
             {
+                //閫夋嫨鏈垎閰嶆椂,娓呯┖
+                if (roomKeys == string.Empty) { listCheck = new List<string>(); }
                 foreach (var device in this.listNewDevice)
                 {
-                    var room = Room.CurrentRoom.GetRoomByDevice(device);
+                    if (device is OTADevice)
+                    {
+                        //閽堝鍗曠函鍙湁涓�涓�200绔偣鐨勮澶�
+                        continue;
+                    }
+                    if (roomKeys == string.Empty)
+                    {
+                        //濡傛灉閫夋嫨鐨勬槸鏈垎閰嶏紝鍒欏畠鐨勫叏閮ㄥ洖璺棤鏉′欢鍏ㄩ儴娓呯┖鎴块棿
+                        HdlRoomLogic.Current.ChangedRoom(device, roomKeys);
+                        continue;
+                    }
+                    var room = HdlRoomLogic.Current.GetRoomByDevice(device);
                     string mainKeys = LocalDevice.Current.GetDeviceMainKeys(device);
                     if (room == null)
                     {
                         //杩欓噷鏈夌偣鐗规畩,濡傛灉鍥炶矾娌℃湁璁剧疆鏈夊尯鍩熺殑鏃跺��,鎵嶈缃�
                         listCheck.Add(mainKeys);
-                        Room.CurrentRoom.ChangedRoom(device, roomKeys);
+                        HdlRoomLogic.Current.ChangedRoom(device, roomKeys);
                     }
                     else if (listCheck.Contains(mainKeys) == true)
                     {
                         //濡傛灉杩欎釜鍥炶矾涔嬪墠閮借繕娌℃湁鍖哄煙,鍦ㄦ湰鐣岄潰杩樻病鏈夊叧闂箣鍓�,鍙互鏃犳潯浠堕殢渚垮彉鏇�
-                        Room.CurrentRoom.ChangedRoom(device, roomKeys);
+                        HdlRoomLogic.Current.ChangedRoom(device, roomKeys);
                     }
                 }
                 //淇濆瓨璁惧鎴块棿绱㈠紩
@@ -150,7 +175,7 @@
             this.AddAllMenuRow();
 
             //鍒濆鍖栨甯冨畬鎴�
-            tableContr.FinishInitControl(bodyFrameLayout, this.listview);
+            tableContr.FinishInitControl();
             tableContr = null;
 
             //淇濆瓨
@@ -186,11 +211,10 @@
         /// </summary>
         private void AddAllMenuRow()
         {
-            bool isHdlDevice = Common.LocalDevice.Current.IsHdlDevice(listNewDevice[0]);
             if (deviceEnumInfo.BeloneType == DeviceBeloneType.A鏅鸿兘闂ㄩ攣)
             {
                 //鍙湁鏄渤涓滅殑璁惧鐨勬椂鍊�
-                if (isHdlDevice == true)
+                if (deviceEnumInfo.IsHdlDevice == true)
                 {
                     //娣诲姞銆愮敤鎴风鐞嗐�戣
                     this.AddUserManageRow();
@@ -207,23 +231,39 @@
             }
             else
             {
+                //娣诲姞銆愬伐浣滄ā寮忋�戣(pir浼犳劅鍣ㄤ笓鐢�)
+                this.AddPirSensorWorkModeRow();
                 //娣诲姞銆愮粦瀹氱洰鏍囥�戣(pir浼犳劅鍣ㄤ笓鐢�)
                 this.AddPirSensorBindRow();
                 //娣诲姞銆愭柟鍚戜笌闄愪綅銆戣(寮�鍚堝笜,鍗峰笜涓撶敤)
                 this.AddDirectionAndLimitRow();
                 //娣诲姞銆愭墜鎷夋帶鍒躲�戣(寮�鍚堝笜涓撶敤)
                 this.AddHandPullControlRow();
-                //娣诲姞銆愭寜閿缃�戣(闈㈡澘涓撶敤)
-                this.AddPanelSettionRow();
-                //娣诲姞銆愬姛鑳借缃�戣
-                this.AddFunctionSettionRow();
+                //娣诲姞銆愭寜閿缃�戣(鏂规偊涓撶敤) --杩欎釜鏈夊彲鑳藉拰闈㈡澘閲嶅彔
+                if (this.AddFangyuePanelSettionRow() == false)
+                {
+                    //娣诲姞銆愭寜閿缃�戣(闈㈡澘涓撶敤)
+                    this.AddPanelSettionRow();
+                }
+
+                if (this.IsFangyueFreshaAirPanel() == false)
+                {
+                    //娣诲姞銆愬姛鑳借缃�戣
+                    this.AddFunctionSettionRow();
+                }
+
                 //娣诲姞銆愬共鎺ョ偣璁剧疆銆戣
                 this.AddDryContactSettionRow();
             }
+            //娣诲姞銆愬姛鑳界被鍨嬨�戣(绌烘皵寮�鍏充笓鐢�)
+            this.AddAirSwitchFunctionTypeRow();
             //娣诲姞銆愰�氱敤淇℃伅銆戣
             this.AddGeneralInformationRow();
 
-            if (isHdlDevice == true)
+            //娣诲姞銆愮┖璋冩ā鍧楃増鏈�(绌鸿皟涓撶敤)銆戣
+            this.AddAirConditionerModelVersionRow();
+
+            if (deviceEnumInfo.IsHdlDevice == true)
             {
                 //娣诲姞銆愬浐浠跺崌绾с�戣
                 this.AddFirmwareUpdateRow();
@@ -257,21 +297,19 @@
                      if (UserCenterResourse.UserInfo.AuthorityNo == 1)
                      {
                          Action action = null;
-                         if (!UserCenterResourse.Option.DoorUnLockByRemote)
+                         Action actionNone = null;
+                         action = () =>
                          {
-                             Shared.Phone.UserCenter.DoorLock.DoorLockCommonLayout.SecurityRequest(doorLock, action);
-                         }
-                         else
+                             var userManagement = new Shared.Phone.UserCenter.DoorLock.UserManagement(doorLock);
+                             Shared.Phone.UserView.HomePage.Instance.AddChidren(userManagement);
+                             Shared.Phone.UserView.HomePage.Instance.PageIndex += 1;
+                             userManagement.Show();
+                         };
+                         actionNone = () =>
                          {
-                             action = async () =>
-                             {
-                                 var userManagement = new Shared.Phone.UserCenter.DoorLock.UserManagement(doorLock);
-                                 Shared.Phone.UserView.HomePage.Instance.AddChidren(userManagement);
-                                 Shared.Phone.UserView.HomePage.Instance.PageIndex += 1;
-                                 userManagement.Show();
-                             };
-                             HdlCheckLogic.Current.CheckSecondarySecurity(action);
-                         }
+                             Shared.Phone.UserCenter.DoorLock.DoorLockCommonLayout.SecurityRequest(doorLock);
+                         };
+                         HdlCheckLogic.Current.CheckSecondarySecurity(action, actionNone);
                      }
                      else
                      {
@@ -279,10 +317,21 @@
                          var result = await Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.GetDoorLockOperateAccess(doorLock, Shared.Common.Config.Instance.Guid);
                          if (result == false)
                          {
-                             var userManagement = new Shared.Phone.UserCenter.DoorLock.UserManagement(doorLock);
-                             Shared.Phone.UserView.HomePage.Instance.AddChidren(userManagement);
-                             Shared.Phone.UserView.HomePage.Instance.PageIndex += 1;
-                             userManagement.Show();
+                             Action action = null;
+                             Action actionNone = null;
+                             action = () =>
+                             {
+                                 var userManagement = new Shared.Phone.UserCenter.DoorLock.UserManagement(doorLock);
+                                 Shared.Phone.UserView.HomePage.Instance.AddChidren(userManagement);
+                                 Shared.Phone.UserView.HomePage.Instance.PageIndex += 1;
+                                 userManagement.Show();
+                             };
+                             actionNone = () =>
+                             {
+                                 Shared.Phone.UserCenter.DoorLock.DoorLockCommonLayout.SecurityRequest(doorLock);
+                             };
+                             HdlCheckLogic.Current.CheckSecondarySecurity(action, actionNone);
+
                          }
                          else
                          {
@@ -424,7 +473,7 @@
         #region 鈻� 鎸夐敭璁剧疆(闈㈡澘)_____________________
 
         /// <summary>
-        /// 娣诲姞銆愭寜閿缃�戣
+        /// 娣诲姞銆愭寜閿缃�戣(闈㈡澘)
         /// </summary>
         private void AddPanelSettionRow()
         {
@@ -447,6 +496,74 @@
                 var form = new DevicePanel.PanelButtonSettionForm();
                 form.AddForm(listNewDevice[0]);
             };
+        }
+
+        #endregion
+
+        #region 鈻� 鎸夐敭璁剧疆(鏂规偊)_____________________
+
+        /// <summary>
+        /// 娣诲姞銆愭寜閿缃�戣(鏂规偊)
+        /// </summary>
+        private bool AddFangyuePanelSettionRow()
+        {
+            if (deviceEnumInfo.ConcreteType == DeviceConcreteType.ButtonPanel_FangyueTwo
+                || deviceEnumInfo.ConcreteType == DeviceConcreteType.ButtonPanel_FangyueFour
+                || deviceEnumInfo.ConcreteType == DeviceConcreteType.ButtonPanel_FangyueEight
+                || deviceEnumInfo.ConcreteType == DeviceConcreteType.ButtonPanel_FangyueEnvironment
+                || deviceEnumInfo.ConcreteType == DeviceConcreteType.ButtonPanel_FangyueFreshAir)
+            {
+                //鎸夐敭璁剧疆
+                string caption = Language.StringByID(R.MyInternationalizationString.uPanelSettion);
+                var btnFunction = new FrameRowControl(listview.rowSpace / 2);
+                listview.AddChidren(btnFunction);
+                btnFunction.AddLeftCaption(caption, 600);
+                //鍚戝彸鍥炬爣
+                btnFunction.AddRightArrow();
+                //搴曠嚎
+                btnFunction.AddBottomLine();
+                btnFunction.ButtonClickEvent += (sender, e) =>
+                {
+                    if (deviceEnumInfo.ConcreteType == DeviceConcreteType.ButtonPanel_FangyueTwo
+                    || deviceEnumInfo.ConcreteType == DeviceConcreteType.ButtonPanel_FangyueFour
+                    || deviceEnumInfo.ConcreteType == DeviceConcreteType.ButtonPanel_FangyueEight)
+                    {
+                        //鏂规偊鎸夐敭闈㈡澘[鍗曞紑鍙屾帶/鍙屽紑鍥涙帶/鍥涘紑鍏帶]閰嶇疆
+                        var form = new DevicePanel.PanelFangyueButtonSettionForm();
+                        form.AddForm(listNewDevice[0]);
+                    }
+                    else if (deviceEnumInfo.ConcreteType == DeviceConcreteType.ButtonPanel_FangyueEnvironment)
+                    {
+                        //鏂规偊鐜闈㈡澘鐨勬寜閿厤缃�
+                        var form = new DevicePanel.PanelFangyueEnvironmentButtonSettionForm();
+                        form.AddForm(listNewDevice[0]);
+                    }
+                    else
+                    {
+                        //鏂规偊鏂伴闈㈡澘鐨勬寜閿厤缃�
+                        var form = new DevicePanel.PanelFangyueFreshAirButtonSettionForm();
+                        form.AddForm(listNewDevice[0]);
+                    }
+                };
+                return true;
+            }
+            return false;
+        }
+
+        #endregion
+
+        #region 鈻� 鎸夐敭璁剧疆(鏂规偊)_____________________
+
+        /// <summary>
+        /// 鏄惁鏄柟鎮︽柊椋庨潰鏉�
+        /// </summary>
+        private bool IsFangyueFreshaAirPanel()
+        {
+            if (deviceEnumInfo.ConcreteType == DeviceConcreteType.ButtonPanel_FangyueFreshAir)
+            {
+                return true;
+            }
+            return false;
         }
 
         #endregion
@@ -487,6 +604,36 @@
         }
 
         #endregion
+
+        #region 鈻� 宸ヤ綔妯″紡(pir浼犳劅鍣ㄤ笓鐢�)____________
+
+        /// <summary>
+        /// 娣诲姞銆愬伐浣滄ā寮忋�戣(pir浼犳劅鍣ㄤ笓鐢�)
+        /// </summary>
+        private void AddPirSensorWorkModeRow()
+        {
+            if (this.deviceEnumInfo.ConcreteType != DeviceConcreteType.Sensor_Pir
+                || deviceEnumInfo.IsHdlDevice == false)
+            {
+                return;
+            }
+            //宸ヤ綔妯″紡
+            string caption = Language.StringByID(R.MyInternationalizationString.uWorkMode);
+            var btnFunction = new FrameRowControl(listview.rowSpace / 2);
+            listview.AddChidren(btnFunction);
+            btnFunction.AddLeftCaption(caption, 600);
+            //鍚戝彸鍥炬爣
+            btnFunction.AddRightArrow();
+            //搴曠嚎
+            btnFunction.AddBottomLine();
+            btnFunction.ButtonClickEvent += (sender, e) =>
+            {
+                var form = new DevicePirSensor.PirSensorWorkModeMenuForm();
+                form.AddForm((IASZone)this.listNewDevice[0]);
+            };
+        }
+
+        #endregion;
 
         #region 鈻� 缁戝畾鐩爣(pir浼犳劅鍣ㄤ笓鐢�)____________
 
@@ -529,6 +676,27 @@
             {
                 return;
             }
+            if (deviceEnumInfo.ConcreteType == DeviceConcreteType.ButtonPanel_FangyueEnvironment
+                || deviceEnumInfo.ConcreteType == DeviceConcreteType.ButtonPanel_FangyueFreshAir)
+            {
+                //鐜闈㈡澘娌℃湁鍔熻兘璁剧疆
+                return;
+            }
+
+            //2020.03.06鏂拌拷鍔狅細濡傛灉鍏ㄩ儴閮芥槸骞叉帴鐐圭殑璇�,涔熶笉鑳芥湁杩欎釜涓滆タ
+            int dryContactCount = 0;
+            for (int i = 0; i < listNewDevice.Count; i++)
+            {
+                if (listNewDevice[i].Type == DeviceType.OnOffSwitch)
+                {
+                    dryContactCount++;
+                }
+            }
+            if (listNewDevice.Count == dryContactCount)
+            {
+                //杩欎釜璁惧鍏ㄦ槸骞叉帴鐐�
+                return;
+            }
 
             //鍔熻兘璁剧疆
             string caption = Language.StringByID(R.MyInternationalizationString.uFunctionSettingUp);
@@ -541,8 +709,16 @@
             btnFunction.AddBottomLine();
             btnFunction.ButtonClickEvent += (sender, e) =>
             {
+                //鏂规偊闈㈡澘
+                if (deviceEnumInfo.ConcreteType == DeviceConcreteType.ButtonPanel_FangyueTwo
+                    || deviceEnumInfo.ConcreteType == DeviceConcreteType.ButtonPanel_FangyueFour
+                    || deviceEnumInfo.ConcreteType == DeviceConcreteType.ButtonPanel_FangyueEight)
+                {
+                    var form = new DevicePanel.PanelFangyueFunctionSettionForm();
+                    form.AddForm(listNewDevice[0]);
+                }
                 //娌充笢鐨勯潰鏉胯澶�
-                if (deviceEnumInfo.BeloneType == DeviceBeloneType.A鎸夐敭闈㈡澘 && deviceEnumInfo.IsHdlDevice == true)
+                else if (deviceEnumInfo.BeloneType == DeviceBeloneType.A鎸夐敭闈㈡澘 && deviceEnumInfo.IsHdlDevice == true)
                 {
                     var form = new DevicePanel.PanelFunctionSettionForm();
                     form.AddForm(listNewDevice[0]);
@@ -632,10 +808,11 @@
             btnSwitch.ButtonClickEvent += async (sender, e) =>
             {
                 //鍒囨崲妯″紡
-                var result = await HdlDeviceCurtainLogic.Current.SetHandPullControl(deviceCurtain, !btnSwitch.IsSelected);
+                bool statu = !btnSwitch.IsSelected;
+                var result = await HdlDeviceCurtainLogic.Current.SetHandPullControl(deviceCurtain, statu);
                 if (result == true)
                 {
-                    btnSwitch.IsSelected = !btnSwitch.IsSelected;
+                    btnSwitch.IsSelected = statu;
                 }
             };
 
@@ -655,7 +832,10 @@
                         //鎵嬫媺鎺у埗
                         if (0 < (attriBute.AttriButeData & 0x04))
                         {
-                            btnSwitch.IsSelected = true;
+                            HdlThreadLogic.Current.RunMain(() =>
+                            {
+                                btnSwitch.IsSelected = true;
+                            });
                         }
                     }
                 }
@@ -673,10 +853,12 @@
         /// </summary>
         private void AddIndoorUnitSettionRow()
         {
-            if (this.deviceEnumInfo.ConcreteType != DeviceConcreteType.AirConditioner_ZbGateway)
+            if (this.deviceEnumInfo.ConcreteType != DeviceConcreteType.AirConditioner_ZbGateway
+                || this.listNewDevice[0] is OTADevice)//杩藉姞锛氬崟绾彧鏈�200绔偣鐨勮瘽锛屼笉鏄剧ず杩欎釜鑿滃崟
             {
                 return;
             }
+
             //瀹ゅ唴鏈鸿缃�
             string caption = Language.StringByID(R.MyInternationalizationString.uIndoorUnitSettion);
             var btnFunction = new FrameRowControl(listview.rowSpace / 2);
@@ -690,6 +872,101 @@
             {
                 var form = new DeviceAirConditioner.IndoorUnitListForm();
                 form.AddForm(listNewDevice[0].DeviceAddr);
+            };
+        }
+
+        #endregion
+
+        #region 鈻� 鍔熻兘绫诲瀷(绌烘皵寮�鍏充笓鐢�)_____________
+
+        /// <summary>
+        /// 娣诲姞銆愬姛鑳界被鍨嬨�戣(绌烘皵寮�鍏充笓鐢�)
+        /// </summary>
+        private void AddAirSwitchFunctionTypeRow()
+        {
+            if (this.deviceEnumInfo.BeloneType != DeviceBeloneType.A鏅鸿兘绌哄紑)
+            {
+                //涓嶆槸绌烘皵寮�鍏�
+                return;
+            }
+
+            //鍔熻兘绫诲瀷
+            string caption = Language.StringByID(R.MyInternationalizationString.uFunctionType);
+            var DfunctionType = this.listNewDevice[0].DfunctionType;
+
+            //鍔熻兘绫诲瀷鐨勭炕璇戝悕瀛�
+            int nowSelectNo = 1;
+            string strType = string.Empty;
+            if (DfunctionType == DeviceFunctionType.A鐏厜)
+            {
+                strType = Language.StringByID(R.MyInternationalizationString.uLight);
+                nowSelectNo = 1;
+            }
+            else if (DfunctionType == DeviceFunctionType.A寮�鍏�)
+            {
+                strType = Language.StringByID(R.MyInternationalizationString.uSwitch);
+                nowSelectNo = 0;
+            }
+            else if (DfunctionType == DeviceFunctionType.A鎻掑骇)
+            {
+                strType = Language.StringByID(R.MyInternationalizationString.uSocket1);
+                nowSelectNo = 2;
+            }
+
+            var btnFunction = new FrameCaptionViewControl(caption, strType, listview.rowSpace / 2);
+            btnFunction.UseClickStatu = true;
+            listview.AddChidren(btnFunction);
+            btnFunction.InitControl();
+            //搴曠嚎
+            btnFunction.AddBottomLine();
+            //鍙崇澶�
+            btnFunction.AddRightArrow();
+            btnFunction.ButtonClickEvent += (sender, e) =>
+            {
+                //鏄剧ず鍒楄〃
+                var listText = new List<string>();
+                listText.Add(Language.StringByID(R.MyInternationalizationString.uSwitch));//寮�鍏�
+                listText.Add(Language.StringByID(R.MyInternationalizationString.uLight));//鐏厜
+                listText.Add(Language.StringByID(R.MyInternationalizationString.uSocket1));//鎻掑骇
+                //鏍囬:閫夋嫨鍔熻兘绫诲瀷
+                var title = Language.StringByID(R.MyInternationalizationString.uSelectFunctionType);
+
+                var form = new BottomItemSelectForm();
+                form.AddForm(title, listText, nowSelectNo);
+                form.FinishSelectEvent += (selectNo) =>
+                {
+                    btnFunction.Text = listText[selectNo];
+                    nowSelectNo = selectNo;
+                    //璁板綍璧峰綋鍓嶉�夋嫨鐨勫姛鑳界被鍨�
+                    if (selectNo == 0)
+                    {
+                        this.listNewDevice[0].DfunctionType = DeviceFunctionType.A寮�鍏�;
+                        if (this.listNewDevice[0].IsCustomizeImage == false)
+                        {
+                            //閲嶆柊璁剧疆鍥剧墖
+                            this.listNewDevice[0].IconPath = "Device/Switch.png";
+                        }
+                    }
+                    else if (selectNo == 1)
+                    {
+                        this.listNewDevice[0].DfunctionType = DeviceFunctionType.A鐏厜;
+                        if (this.listNewDevice[0].IsCustomizeImage == false)
+                        {
+                            //閲嶆柊璁剧疆鍥剧墖
+                            this.listNewDevice[0].IconPath = "Device/Light.png";
+                        }
+                    }
+                    else
+                    {
+                        this.listNewDevice[0].DfunctionType = DeviceFunctionType.A鎻掑骇;
+                        if (this.listNewDevice[0].IsCustomizeImage == false)
+                        {
+                            //閲嶆柊璁剧疆鍥剧墖
+                            this.listNewDevice[0].IconPath = "Device/Socket1.png";
+                        }
+                    }
+                    this.listNewDevice[0].ReSave();
+                };
             };
         }
 
@@ -715,6 +992,34 @@
                 var form = new DeviceGeneralInformationForm();
                 form.AddForm(listNewDevice[0].DeviceAddr);
             };
+        }
+
+        #endregion
+
+        #region 鈻� 绌鸿皟妯″潡鐗堟湰(绌鸿皟涓撶敤)_____________
+
+        /// <summary>
+        /// 娣诲姞銆愮┖璋冩ā鍧楃増鏈�戣(娌充笢鐨勪腑澶┖璋�)
+        /// </summary>
+        private void AddAirConditionerModelVersionRow()
+        {
+            if (this.deviceEnumInfo.ConcreteType != DeviceConcreteType.AirConditioner_ZbGateway)
+            {
+                //涓嶆槸涓ぎ绌鸿皟
+                return;
+            }
+            string caption = Language.StringByID(R.MyInternationalizationString.uAirConditionerModelVersion);
+            var rowVersion = new FrameRowControl(listview.rowSpace / 2);
+            rowVersion.UseClickStatu = false;
+            listview.AddChidren(rowVersion);
+            rowVersion.AddLeftCaption(caption, 600);
+            //鐗堟湰
+            this.btnAirConditionerVersion = rowVersion.AddMostRightView("", 800);
+            //搴曠嚎
+            rowVersion.AddBottomLine();
+
+            //鑾峰彇涓ぎ绌鸿皟妯″潡鐨勭増鏈�
+            this.ReadAirConditionerVersion();
         }
 
         #endregion
@@ -753,9 +1058,19 @@
 
             rowUpDate.ButtonClickEvent += (sender, e) =>
             {
+                if (this.deviceEnumInfo.ConcreteType != DeviceConcreteType.AirConditioner_ZbGateway)
+                {
+                    //杩欎釜鏄竴鑸澶囩殑鍗囩骇
+                    var form = new DeviceFirmwareUpdateForm();
+                    form.AddForm(listNewDevice[0].DeviceAddr);
+                }
+                else
+                {
+                    //涓ぎ绌鸿皟鐨勫崌绾х殑璇濓紝鏄壒娈婄殑
+                    var form = new DeviceAirConditioner.ACZbGatewayUpdateMenuForm();
+                    form.AddForm(listNewDevice[0], btnNewVersion.Visible);
+                }
                 btnNewVersion.Visible = false;
-                var form = new DeviceFirmwareInfoForm();
-                form.AddForm(listNewDevice[0].DeviceAddr);
             };
 
             //璁剧疆璁惧鐨勭増鏈俊鎭�
@@ -871,15 +1186,11 @@
         /// </summary>
         private void ShowTopRightMenu()
         {
-            int menuCount = 1;
-            string deviceMenu = string.Empty;
             //妫�娴嬫鍥炶矾鏄惁鎷ユ湁瀹氫綅鍔熻兘(鎷跨鐐规渶灏忕殑閭d釜鍥炶矾鍘诲畾浣�)
             bool canTest = Common.LocalDevice.Current.DeviceIsCanFixedPosition(listNewDevice[0]);
-            if (canTest == true)
-            {
-                menuCount = 2;
-            }
-            var frame = new TopRightMenuControl(menuCount);
+            
+            var frame = new TopRightMenuControl(canTest == true ? 2 : 1, 1);
+            string deviceMenu = string.Empty;
             if (canTest == true)
             {
                 //瀹氫綅
@@ -909,16 +1220,27 @@
         /// <summary>
         /// 鍒犻櫎鎸囧畾璁惧
         /// </summary>
-        private async void DoDeleteDevice()
+        private void DoDeleteDevice()
         {
-            //鍒犻櫎璁惧
-            bool result = await Common.LocalDevice.Current.DeleteDevice(listNewDevice);
-            if (result == false)
+            HdlThreadLogic.Current.RunThread(async () =>
             {
-                return;
-            }
-            //鍏抽棴鐣岄潰
-            this.CloseForm();
+                //鎵撳紑杩涘害鏉�
+                this.ShowProgressBar();
+
+                //鍒犻櫎璁惧
+                bool result = await Common.LocalDevice.Current.DeleteDevice(listNewDevice);
+                //鍏抽棴杩涘害鏉�
+                this.CloseProgressBar();
+                if (result == false)
+                {
+                    return;
+                }
+                HdlThreadLogic.Current.RunMain(() =>
+                {
+                    //鍏抽棴鐣岄潰
+                    this.CloseForm();
+                });
+            });
         }
         #endregion
 
@@ -964,8 +1286,56 @@
 
         #endregion
 
+        #region 鈻� 鐣岄潰閲嶆柊婵�娲讳簨浠禵__________________
+
+        /// <summary>
+        /// 鑷韩鐨勪笂灞傜晫闈㈠叧闂悗,瀹冭嚜韬浜庢渶涓婂眰鏃�,瑙﹀彂鐨勪簨浠�
+        /// </summary>
+        public override int FormActionAgainEvent()
+        {
+            //閲嶆柊鑾峰彇涓ぎ绌鸿皟妯″潡鐨勭増鏈�
+            this.ReadAirConditionerVersion();
+
+            return 0;
+        }
+
+        #endregion
+
         #region 鈻� 涓�鑸柟娉昣__________________________
 
+        /// <summary>
+        /// 鑾峰彇涓ぎ绌鸿皟妯″潡鐨勭増鏈�
+        /// </summary>
+        private void ReadAirConditionerVersion()
+        {
+            if (this.btnAirConditionerVersion == null)
+            {
+                return;
+            }
+            //鑾峰彇涓�....
+            this.btnAirConditionerVersion.TextID = R.MyInternationalizationString.uGetting;
+            HdlThreadLogic.Current.RunThread(async () =>
+            {
+                //璇诲彇绌鸿皟妯″潡鐗堟湰
+                var result = await HdlDeviceAirConditionerLogic.Current.ReadACFirewareVersionAsync(listNewDevice[0]);
+                if (result == null || result.readACFirewareVersionResponData == null || result.readACFirewareVersionResponData.Status != 0)
+                {
+                    HdlThreadLogic.Current.RunMain(() =>
+                    {
+                        //鑾峰彇澶辫触
+                        btnAirConditionerVersion.TextID = R.MyInternationalizationString.uGettingFail;
+                    });
+                }
+                else
+                {
+                    HdlThreadLogic.Current.RunMain(() =>
+                    {
+                        btnAirConditionerVersion.Text = result.readACFirewareVersionResponData.FirewareVersion.Replace("-", string.Empty);
+                    });
+                }
+            });
+        }
+
         #endregion
     }
 }

--
Gitblit v1.8.0