From f3e65daca7978b21b5888f49b1bf35e1a6e5d4fd Mon Sep 17 00:00:00 2001
From: 黄学彪 <hxb@hdlchina.com.cn>
Date: 星期一, 13 七月 2020 12:33:31 +0800
Subject: [PATCH] 新版本

---
 ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/PanelFangyueFreshAirButtonSettionForm.cs |  261 ++++++++++++++++++++++++++++++++++------------------
 1 files changed, 170 insertions(+), 91 deletions(-)

diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/PanelFangyueFreshAirButtonSettionForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/PanelFangyueFreshAirButtonSettionForm.cs
index 51837e9..7dec652 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/PanelFangyueFreshAirButtonSettionForm.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/PanelFangyueFreshAirButtonSettionForm.cs
@@ -1,6 +1,8 @@
 锘縰sing System;
 using System.Collections.Generic;
 using Shared.Common;
+using Shared.Phone.UserCenter.Device.Bind;
+using Shared.Phone.UserCenter.DeviceBind;
 using ZigBee.Common;
 using ZigBee.Device;
 
@@ -37,6 +39,26 @@
         /// PM鐩爣鍚嶅瓧
         /// </summary>
         private string bindPmName = string.Empty;
+        /// <summary>
+        /// 琚粦鐩爣鏄柊椋�
+        /// </summary>
+        private CommonDevice bindFreshAirDev;
+        /// <summary>
+        /// 琚粦鐩爣鏄俯搴�
+        /// </summary>
+        private CommonDevice bindTemperatureDev;
+        /// <summary>
+        /// 琚粦鐩爣鏄箍搴�
+        /// </summary>
+        private CommonDevice bindHumidityDev;
+        /// <summary>
+        /// 琚粦鐩爣鏄疨M2.5
+        /// </summary>
+        private CommonDevice bindPMDev;
+        // <summary>
+        /// 鎸夐敭涓缁戝畾鐨勭洰鏍囧垪琛�
+        /// </summary>
+        public List<BindObj.BindListResponseObj> bindList = new List<BindObj.BindListResponseObj>();
 
         #endregion
 
@@ -50,7 +72,7 @@
         {
             this.deviceObj = i_device;
             //鑾峰彇鏁版嵁
-            ReadDoorLockUserInfo(deviceObj);
+            InitInfo(deviceObj);
 
             //璁剧疆澶撮儴淇℃伅
             base.SetTitleText(Language.StringByID(R.MyInternationalizationString.uPanelSettion));
@@ -127,7 +149,7 @@
         /// <summary>
         /// 鍒濆鍖栨暟鎹�
         /// </summary>
-        void ReadDoorLockUserInfo(CommonDevice curControlDev)
+        void InitInfo(CommonDevice curControlDev)
         {
             System.Threading.Tasks.Task.Run(async () =>
             {
@@ -162,38 +184,153 @@
                 }
             });
         }
+
+        /// <summary>
+        /// 鑾峰彇缁戝畾鐩爣
+        /// </summary>
+        /// <param name="curControlDev"></param>
+        /// <returns></returns>
+        private async System.Threading.Tasks.Task<bool> GetBindName(CommonDevice curDev)
+        {
+            bool result = false;
+            //鑾峰彇闈㈡澘涓瓨鍦ㄧ殑缁戝畾鐩爣
+            FreshAir curControlDev = curDev as FreshAir;
+            var panelBindListRes = HdlDeviceBindLogic.Current.GetDeviceBindAsync(curControlDev);
+            if (panelBindListRes != null && panelBindListRes.getAllBindResponseData != null)
+            {
+                bindList = panelBindListRes.getAllBindResponseData.BindList;
+                foreach (var bDev in bindList)
+                {
+                    var device = Common.LocalDevice.Current.GetDevice(bDev.BindMacAddr, bDev.BindEpoint);
+                    if (device == null)
+                    {
+                        continue;
+                    }
+                    if (device.Type == DeviceType.FreshAir)
+                    {
+                        //鑾峰彇璁惧绫诲瀷鐨�
+                        var deviceEnumInfo = Common.LocalDevice.Current.GetMyDeviceEnumInfo(new List<CommonDevice>() { device });
+                        //鏂伴闈㈡澘鐨勬柊椋庤澶囷紝鍒欎笉鏄剧ず
+                        if (deviceEnumInfo.ConcreteType == Common.DeviceConcreteType.ButtonPanel_FangyueFreshAir)
+                        {
+                            continue;
+                        }
+                        if (string.IsNullOrEmpty(bDev.ESName))
+                        {
+                            bindFreshAirName = Common.LocalDevice.Current.GetDeviceEpointName(device);
+                        }
+                        else
+                        {
+                            bindFreshAirName = bDev.ESName;
+                        }
+
+                        bindFreshAirDev = device;
+                    }
+                    if (device.Type == DeviceType.TemperatureSensor)
+                    {
+                        var bD = device as TemperatureSensor;
+                        if (bD.SensorDiv == 1)
+                        {
+                            if (string.IsNullOrEmpty(bDev.ESName))
+                            {
+                                bindTemperatureName = Common.LocalDevice.Current.GetDeviceEpointName(device);
+                            }
+                            else
+                            {
+                                bindTemperatureName = bDev.ESName;
+                            }
+                            bindTemperatureDev = device;
+                        }
+                        if (bD.SensorDiv == 2)
+                        {
+                            if (string.IsNullOrEmpty(bDev.ESName))
+                            {
+                                bindHumidityName = Common.LocalDevice.Current.GetDeviceEpointName(device);
+                            }
+                            else
+                            {
+                                bindHumidityName = bDev.ESName;
+                            }
+
+                            bindHumidityDev = device;
+                        }
+                    }
+                    if (device.Type == DeviceType.FreshAirHumiditySensor)
+                    {
+                        if (string.IsNullOrEmpty(bDev.ESName))
+                        {
+                            bindHumidityName = Common.LocalDevice.Current.GetDeviceEpointName(device);
+                        }
+                        else
+                        {
+                            bindHumidityName = bDev.ESName;
+                        }
+
+                        bindHumidityDev = device;
+                    }
+                    if (device.Type == DeviceType.PMSensor)
+                    {
+                        if (bDev.BindCluster == 1026)
+                        {
+                            bindTemperatureName = Common.LocalDevice.Current.GetDeviceEpointName(device) + "-" + Language.StringByID(R.MyInternationalizationString.TemperatureSensor);
+                            bindTemperatureDev = device;
+                        }
+                        if (bDev.BindCluster == 1029)
+                        {
+                            bindHumidityName = Common.LocalDevice.Current.GetDeviceEpointName(device) + "-" + Language.StringByID(R.MyInternationalizationString.HumiditySensor);
+                            bindHumidityDev = device;
+                        }
+                        if (bDev.BindCluster == 1066)
+                        {
+                            if (string.IsNullOrEmpty(bDev.ESName))
+                            {
+                                bindPmName = Common.LocalDevice.Current.GetDeviceEpointName(device);
+                            }
+                            else
+                            {
+                                bindPmName = bDev.ESName;
+                            }
+
+                            bindPMDev = device;
+                        }
+                    }
+                }
+                result = true;
+            }
+            return result;
+        }
+
         #endregion
-
+
         #region 鈻� 鏂伴鐩爣_________________________ 
         /// <summary>
         ///  鏂伴鐩爣琛�
         /// </summary>
         private void AddFreshAirRow()
         {
-            //鏂伴鐩爣
-            var rowNewWind = new FrameRowControl(listview.rowSpace / 2);
-            listview.AddChidren(rowNewWind);
-            rowNewWind.AddLeftCaption(Language.StringByID(R.MyInternationalizationString.uNewWindTarget), 600);
-            //搴曠嚎
-            rowNewWind.AddBottomLine();
-            //鍙崇澶�
-            rowNewWind.AddRightArrow();
+            //鏂伴鐩爣
+            var rowNewWind = new FrameRowControl(listview.rowSpace / 2);
+            listview.AddChidren(rowNewWind);
+            rowNewWind.AddLeftCaption(Language.StringByID(R.MyInternationalizationString.uNewWindTarget), 600);
+            //搴曠嚎
+            rowNewWind.AddBottomLine();
+            //鍙崇澶�
+            rowNewWind.AddRightArrow();
 
             var msg = Language.StringByID(R.MyInternationalizationString.nothing);
             if (!string.IsNullOrEmpty(bindFreshAirName))
             {
                 msg = bindFreshAirName;
             }
-            var btnNewWindStatu = rowNewWind.AddMostRightView(msg, 700);
+            var btnNewWindStatu = rowNewWind.AddMostRightView(msg, 700);
 
-            rowNewWind.ButtonClickEvent += (sender, e) =>
-            {
-                var addDevicePage = new Shared.Phone.UserCenter.DeviceBind.PanelFangyueFreshAirTargetsForm(this.deviceObj, 1);
-                Shared.Phone.UserView.HomePage.Instance.AddChidren(addDevicePage);
+            rowNewWind.ButtonClickEvent += (sender, e) =>
+            {
+                var paneTargetsBaseFormp = new PaneTargetsBaseForm(this.deviceObj, bindFreshAirDev, BindInfo.BindType.FreshAir);
+                Shared.Phone.UserView.HomePage.Instance.AddChidren(paneTargetsBaseFormp);
                 Shared.Phone.UserView.HomePage.Instance.PageIndex += 1;
-                addDevicePage.Show();
-
-                addDevicePage.actionFreshAirTarget += (bindName) =>
+                paneTargetsBaseFormp.Show();
+                paneTargetsBaseFormp.actionFreshAirTarget += (bindName) =>
                 {
                     Application.RunOnMainThread(() =>
                     {
@@ -207,59 +344,9 @@
                         }
                     });
                 };
-
-                //var form = new PanelFangyueFreshAirTargetForm();
-                //form.AddForm(this.deviceObj, string.Empty, 3);
             };
         }
         #endregion
-
-        /// <summary>
-        /// 鑾峰彇缁戝畾鐩爣
-        /// </summary>
-        /// <param name="curControlDev"></param>
-        /// <returns></returns>
-        private async System.Threading.Tasks.Task<bool> GetBindName(CommonDevice curDev)
-        {
-            bool result = false;
-            //鑾峰彇闈㈡澘涓瓨鍦ㄧ殑缁戝畾鐩爣
-            FreshAir curControlDev = curDev as FreshAir;
-            var panelBindListRes = await curControlDev.GetDeviceBindAsync();
-            if (panelBindListRes != null && panelBindListRes.getAllBindResponseData != null)
-            {
-                foreach (var bDev in panelBindListRes.getAllBindResponseData.BindList)
-                {
-                    curControlDev.bindList.Add(bDev);
-                    var device = Common.LocalDevice.Current.GetDevice(bDev.BindMacAddr, bDev.BindEpoint);
-
-                    if (device.Type == DeviceType.FreshAir)
-                    {
-                        //鑾峰彇璁惧绫诲瀷鐨�
-                        var deviceEnumInfo = Common.LocalDevice.Current.GetMyDeviceEnumInfo(new List<CommonDevice>() { device });
-                        //鏂伴闈㈡澘鐨勬柊椋庤澶囷紝鍒欎笉鏄剧ず
-                        if (deviceEnumInfo.ConcreteType == Common.DeviceConcreteType.ButtonPanel_FangyueFreshAir)
-                        {
-                            continue;
-                        }
-                        bindFreshAirName = device.DeviceEpointName;
-                    }
-                    if (device.Type == DeviceType.TemperatureSensor)
-                    {
-                        bindTemperatureName = device.DeviceEpointName;
-                    }
-                    if (device.Type == DeviceType.FreshAirHumiditySensor)
-                    {
-                        bindHumidityName = device.DeviceEpointName;
-                    }
-                    //if (device.Type == DeviceType.FreshAir)
-                    //{
-                    //    bindPmName  = device.DeviceEpointName;
-                    //}
-                }
-                result = true;
-            }
-            return result;
-        }
 
         #region 鈻� PM2.5鏉ユ簮_________________________ 
         /// <summary>
@@ -283,12 +370,11 @@
             var btnPMStatu = rowPM.AddMostRightView(msg, 700);
             rowPM.ButtonClickEvent += (sender, e) =>
             {
-                var addDevicePage = new Shared.Phone.UserCenter.DeviceBind.PanelFangyueFreshAirTargetsForm(this.deviceObj, 4);
-                Shared.Phone.UserView.HomePage.Instance.AddChidren(addDevicePage);
+                var paneTargetsBaseFormp = new PaneTargetsBaseForm(this.deviceObj, bindPMDev, BindInfo.BindType.PM);
+                Shared.Phone.UserView.HomePage.Instance.AddChidren(paneTargetsBaseFormp);
                 Shared.Phone.UserView.HomePage.Instance.PageIndex += 1;
-                addDevicePage.Show();
-
-                addDevicePage.actionPMTarget += (bindName) =>
+                paneTargetsBaseFormp.Show();
+                paneTargetsBaseFormp.actionPMTarget += (bindName) =>
                 {
                     Application.RunOnMainThread(() =>
                     {
@@ -328,12 +414,11 @@
             var btnTemperatureStatu = rowTemPerature.AddMostRightView(msg, 700);
             rowTemPerature.ButtonClickEvent += (sender, e) =>
             {
-                var addDevicePage = new Shared.Phone.UserCenter.DeviceBind.PanelFangyueFreshAirTargetsForm(this.deviceObj, 2);
-                Shared.Phone.UserView.HomePage.Instance.AddChidren(addDevicePage);
+                var paneTargetsBaseFormp = new PaneTargetsBaseForm(this.deviceObj, bindTemperatureDev, BindInfo.BindType.Temperature);
+                Shared.Phone.UserView.HomePage.Instance.AddChidren(paneTargetsBaseFormp);
                 Shared.Phone.UserView.HomePage.Instance.PageIndex += 1;
-                addDevicePage.Show();
-
-                addDevicePage.actionTemperatureTarget += (bindName) =>
+                paneTargetsBaseFormp.Show();
+                paneTargetsBaseFormp.actionTemperatureTarget += (bindName) =>
                 {
                     Application.RunOnMainThread(() =>
                     {
@@ -373,12 +458,11 @@
             var btnHumidityStatu = rowHumidity.AddMostRightView(msg, 700);
             rowHumidity.ButtonClickEvent += (sender, e) =>
             {
-                var addDevicePage = new Shared.Phone.UserCenter.DeviceBind.PanelFangyueFreshAirTargetsForm(this.deviceObj, 3);
-                Shared.Phone.UserView.HomePage.Instance.AddChidren(addDevicePage);
+                var paneTargetsBaseFormp = new PaneTargetsBaseForm(this.deviceObj, bindHumidityDev, BindInfo.BindType.Humidity);
+                Shared.Phone.UserView.HomePage.Instance.AddChidren(paneTargetsBaseFormp);
                 Shared.Phone.UserView.HomePage.Instance.PageIndex += 1;
-                addDevicePage.Show();
-
-                addDevicePage.actionHumidityTarget += (bindName) =>
+                paneTargetsBaseFormp.Show();
+                paneTargetsBaseFormp.actionHumidityTarget += (bindName) =>
                 {
                     Application.RunOnMainThread(() =>
                     {
@@ -412,13 +496,8 @@
             rowLight.AddRightArrow();
             rowLight.ButtonClickEvent += (sender, e) =>
             {
-                //缁欐柊椋庨潰鏉垮缓绔嬩竴涓柊鐨勬敮鎸侀潰鏉垮璞★紝鐢�200绔偣璁剧疆
-                var panel = new Panel();
-                panel.DeviceAddr = this.deviceObj.DeviceAddr;
-                panel.DeviceEpoint = 200;
-                panel.CurrentGateWayId = this.deviceObj.CurrentGateWayId;
-                var form = new PanelFangyueFreshAirBackLightSettionForm();
-                form.AddForm(panel);
+                var form = new PanelBrightnessAdjustForm();
+                form.AddForm(this.deviceObj);
             };
         }
         #endregion

--
Gitblit v1.8.0