From cc0d80c7d86c6d0167269b3408c4b30c24ce84e9 Mon Sep 17 00:00:00 2001
From: 黄学彪 <hxb@hdlchina.com.cn>
Date: 星期一, 23 三月 2020 16:55:37 +0800
Subject: [PATCH] ???????

---
 ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceMacInfoEditorForm.cs |  147 ++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 133 insertions(+), 14 deletions(-)

diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceMacInfoEditorForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceMacInfoEditorForm.cs
index 6e1ff95..083edd8 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceMacInfoEditorForm.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceMacInfoEditorForm.cs
@@ -45,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)
@@ -56,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();
@@ -131,18 +136,23 @@
             {
                 foreach (var device in this.listNewDevice)
                 {
-                    var room = Room.CurrentRoom.GetRoomByDevice(device);
+                    if (device is OTADevice)
+                    {
+                        //閽堝鍗曠函鍙湁涓�涓�200绔偣鐨勮澶�
+                        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);
                     }
                 }
                 //淇濆瓨璁惧鎴块棿绱㈠紩
@@ -217,10 +227,19 @@
                 this.AddDirectionAndLimitRow();
                 //娣诲姞銆愭墜鎷夋帶鍒躲�戣(寮�鍚堝笜涓撶敤)
                 this.AddHandPullControlRow();
-                //娣诲姞銆愭寜閿缃�戣(闈㈡澘涓撶敤)
-                this.AddPanelSettionRow();
-                //娣诲姞銆愬姛鑳借缃�戣
-                this.AddFunctionSettionRow();
+                //娣诲姞銆愭寜閿缃�戣(鏂规偊涓撶敤) --杩欎釜鏈夊彲鑳藉拰闈㈡澘閲嶅彔
+                if (this.AddFangyuePanelSettionRow() == false)
+                {
+                    //娣诲姞銆愭寜閿缃�戣(闈㈡澘涓撶敤)
+                    this.AddPanelSettionRow();
+                }
+
+                if (this.IsFangyueFreshaAirPanel() == false)
+                {
+                    //娣诲姞銆愬姛鑳借缃�戣
+                    this.AddFunctionSettionRow();
+                }
+
                 //娣诲姞銆愬共鎺ョ偣璁剧疆銆戣
                 this.AddDryContactSettionRow();
             }
@@ -442,7 +461,7 @@
         #region 鈻� 鎸夐敭璁剧疆(闈㈡澘)_____________________
 
         /// <summary>
-        /// 娣诲姞銆愭寜閿缃�戣
+        /// 娣诲姞銆愭寜閿缃�戣(闈㈡澘)
         /// </summary>
         private void AddPanelSettionRow()
         {
@@ -465,6 +484,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
@@ -577,6 +664,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);
@@ -589,8 +697,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]);
@@ -680,10 +796,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;
                 }
             };
 
@@ -724,10 +841,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);
@@ -937,7 +1056,7 @@
                 {
                     //涓ぎ绌鸿皟鐨勫崌绾х殑璇濓紝鏄壒娈婄殑
                     var form = new DeviceAirConditioner.ACZbGatewayUpdateMenuForm();
-                    form.AddForm((AC)listNewDevice[0], btnNewVersion.Visible);
+                    form.AddForm(listNewDevice[0], btnNewVersion.Visible);
                 }
                 btnNewVersion.Visible = false;
             };

--
Gitblit v1.8.0