xm
2020-04-22 dfa6733793434bdcfd394f978ae72f1628b2260f
ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/PanelFangyueFreshAirButtonSettionForm.cs
@@ -1,4 +1,8 @@
using System;
using System.Collections.Generic;
using Org.BouncyCastle.Bcpg.OpenPgp;
using Shared.Common;
using ZigBee.Common;
using ZigBee.Device;
namespace Shared.Phone.UserCenter.DevicePanel
@@ -18,6 +22,22 @@
        /// 设备的某一回路
        /// </summary>
        private CommonDevice deviceObj = null;
        /// <summary>
        /// 新风目标名字
        /// </summary>
        private string bindFreshAirName = string.Empty;
        /// <summary>
        /// 温度目标名字
        /// </summary>
        private string bindTemperatureName = string.Empty;
        /// <summary>
        /// 湿度目标名字
        /// </summary>
        private string bindHumidityName = string.Empty;
        /// <summary>
        /// PM目标名字
        /// </summary>
        private string bindPmName = string.Empty;
        #endregion
@@ -30,6 +50,8 @@
        public void ShowForm(CommonDevice i_device)
        {
            this.deviceObj = i_device;
            //获取数据
            ReadDoorLockUserInfo(deviceObj);
            //设置头部信息
            base.SetTitleText(Language.StringByID(R.MyInternationalizationString.uPanelSettion));
@@ -65,9 +87,9 @@
            this.listview = tableContr.InitControl(listBackControl.frameTable, Language.StringByID(R.MyInternationalizationString.uDeviceEditor), 1028);
            //初始化菜单行
            this.InitMenuRow();
            //初始化桌布完成
            this.InitMenuRow();
            //初始化桌布完成
            tableContr.FinishInitControl();
            tableContr = null;
@@ -79,30 +101,70 @@
            {
                //关闭自身
                this.CloseForm();
            };
            };
        }
        /// <summary>
        /// 初始化菜单行
        /// </summary>
        private void InitMenuRow()
        {
        {
            this.listview.RemoveAll();
            //添加新风目标
            this.AddFreshAirRow();
            //PM2.5来源
            //this.AddPMRow();
            this.AddPMRow();
            //添加温度来源
            //this.AddTemperatureSensorRow();
            this.AddTemperatureSensorRow();
            //添加湿度来源
            //this.AddHumiditySourceRow();
            //添加新风目标
            //this.AddPMRow();
            this.AddHumiditySourceRow();
            //亮度调节
            this.AddLevelRow();
        }
        #endregion
        #region ■ 初始化数据_________________________
        /// <summary>
        /// 初始化数据
        /// </summary>
        void ReadDoorLockUserInfo(CommonDevice curControlDev)
        {
            System.Threading.Tasks.Task.Run(async () =>
            {
                try
                {
                    Application.RunOnMainThread(() =>
                    {
                        CommonPage.Loading.Start("");
                    });
                    var result = await GetBindName(curControlDev);
                    if (!result)
                    {
                        Application.RunOnMainThread(() =>
                        {
                            new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime), Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(Common.CommonPage.Instance);
                        });
                    }
                }
                catch (Exception ex)
                {
                    var mess = ex.Message;
                }
                finally
                {
                    Application.RunOnMainThread(() =>
                    {
                        this.InitMenuRow();
                        CommonPage.Loading.Hide();
                    });
                }
            });
        }
        #endregion
        #region ■ 新风目标_________________________ 
        /// <summary>
        ///  新风目标行
@@ -116,21 +178,90 @@
            //底线
            rowNewWind.AddBottomLine();
            //右箭头
            rowNewWind.AddRightArrow();
            var msg = Language.StringByID(R.MyInternationalizationString.nothing);
            // 回调新风绑定目标
            rowNewWind.AddRightArrow();
            var msg = Language.StringByID(R.MyInternationalizationString.nothing);
            if (!string.IsNullOrEmpty(bindFreshAirName))
            {
                msg = bindFreshAirName;
            }
            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);
                //Shared.Phone.UserView.HomePage.Instance.PageIndex += 1;
                //addDevicePage.Show();
                var form = new PanelFangyueFreshAirTargetForm();
                form.AddForm(this.deviceObj, string.Empty, 3);
                var addDevicePage = new Shared.Phone.UserCenter.DeviceBind.PanelFangyueFreshAirTargetsForm(this.deviceObj, 1);
                Shared.Phone.UserView.HomePage.Instance.AddChidren(addDevicePage);
                Shared.Phone.UserView.HomePage.Instance.PageIndex += 1;
                addDevicePage.Show();
                addDevicePage.actionFreshAirTarget += (bindName) =>
                {
                    Application.RunOnMainThread(() =>
                    {
                        if (string.IsNullOrEmpty(bindName))
                        {
                            btnNewWindStatu.Text = Language.StringByID(R.MyInternationalizationString.nothing);
                        }
                        else
                        {
                            btnNewWindStatu.Text = bindName;
                        }
                    });
                };
                //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);
                    //获取设备类型的
                    var deviceEnumInfo = Common.LocalDevice.Current.GetMyDeviceEnumInfo(new List<CommonDevice>() { device });
                    //新风面板的新风设备,则不显示
                    if (deviceEnumInfo.ConcreteType == Common.DeviceConcreteType.ButtonPanel_FangyueFreshAir)
                    {
                        continue;
                    }
                    if (device.Type == DeviceType.FreshAir)
                    {
                        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>
@@ -139,22 +270,40 @@
        private void AddPMRow()
        {
            //PM2.5
            var rowNewWind = new FrameRowControl(listview.rowSpace / 2);
            listview.AddChidren(rowNewWind);
            rowNewWind.AddLeftCaption(Language.StringByID(R.MyInternationalizationString.PM25Source), 600);
            var rowPM = new FrameRowControl(listview.rowSpace / 2);
            listview.AddChidren(rowPM);
            rowPM.AddLeftCaption(Language.StringByID(R.MyInternationalizationString.PM25Source), 600);
            //底线
            rowNewWind.AddBottomLine();
            rowPM.AddBottomLine();
            //右箭头
            rowNewWind.AddRightArrow();
            rowPM.AddRightArrow();
            var msg = Language.StringByID(R.MyInternationalizationString.nothing);
            // 回调PM2.5来源绑定目标
            var btnNewWindStatu = rowNewWind.AddMostRightView(msg, 700);
            rowNewWind.ButtonClickEvent += (sender, e) =>
            if (!string.IsNullOrEmpty(bindPmName))
            {
                msg = bindPmName;
            }
            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);
                Shared.Phone.UserView.HomePage.Instance.PageIndex += 1;
                addDevicePage.Show();
                addDevicePage.actionPMTarget += (bindName) =>
                {
                    Application.RunOnMainThread(() =>
                    {
                        if (string.IsNullOrEmpty(bindName))
                        {
                            btnPMStatu.Text = Language.StringByID(R.MyInternationalizationString.nothing);
                        }
                        else
                        {
                            btnPMStatu.Text = bindName;
                        }
                    });
                };
            };
        }
        #endregion
@@ -166,22 +315,40 @@
        private void AddTemperatureSensorRow()
        {
            //温度来源
            var rowNewWind = new FrameRowControl(listview.rowSpace / 2);
            listview.AddChidren(rowNewWind);
            rowNewWind.AddLeftCaption(Language.StringByID(R.MyInternationalizationString.TemperatureSource), 600);
            var rowTemPerature = new FrameRowControl(listview.rowSpace / 2);
            listview.AddChidren(rowTemPerature);
            rowTemPerature.AddLeftCaption(Language.StringByID(R.MyInternationalizationString.TemperatureSource), 600);
            //底线
            rowNewWind.AddBottomLine();
            rowTemPerature.AddBottomLine();
            //右箭头
            rowNewWind.AddRightArrow();
            rowTemPerature.AddRightArrow();
            var msg = Language.StringByID(R.MyInternationalizationString.nothing);
            // 回调温度来源绑定目标
            var btnNewWindStatu = rowNewWind.AddMostRightView(msg, 700);
            rowNewWind.ButtonClickEvent += (sender, e) =>
            if (!string.IsNullOrEmpty(bindTemperatureName))
            {
                msg = bindTemperatureName;
            }
            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);
                Shared.Phone.UserView.HomePage.Instance.PageIndex += 1;
                addDevicePage.Show();
                addDevicePage.actionTemperatureTarget += (bindName) =>
                {
                    Application.RunOnMainThread(() =>
                    {
                        if (string.IsNullOrEmpty(bindName))
                        {
                            btnTemperatureStatu.Text = Language.StringByID(R.MyInternationalizationString.nothing);
                        }
                        else
                        {
                            btnTemperatureStatu.Text = bindName;
                        }
                    });
                };
            };
        }
        #endregion
@@ -193,22 +360,40 @@
        private void AddHumiditySourceRow()
        {
            //湿度
            var rowNewWind = new FrameRowControl(listview.rowSpace / 2);
            listview.AddChidren(rowNewWind);
            rowNewWind.AddLeftCaption(Language.StringByID(R.MyInternationalizationString.HumiditySource), 600);
            var rowHumidity = new FrameRowControl(listview.rowSpace / 2);
            listview.AddChidren(rowHumidity);
            rowHumidity.AddLeftCaption(Language.StringByID(R.MyInternationalizationString.HumiditySource), 600);
            //底线
            rowNewWind.AddBottomLine();
            rowHumidity.AddBottomLine();
            //右箭头
            rowNewWind.AddRightArrow();
            rowHumidity.AddRightArrow();
            var msg = Language.StringByID(R.MyInternationalizationString.nothing);
            // 回调湿度来源绑定目标
            var btnNewWindStatu = rowNewWind.AddMostRightView(msg, 700);
            rowNewWind.ButtonClickEvent += (sender, e) =>
            if (!string.IsNullOrEmpty(bindHumidityName))
            {
                msg = bindHumidityName;
            }
            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);
                Shared.Phone.UserView.HomePage.Instance.PageIndex += 1;
                addDevicePage.Show();
                addDevicePage.actionHumidityTarget += (bindName) =>
                {
                    Application.RunOnMainThread(() =>
                    {
                        if (string.IsNullOrEmpty(bindName))
                        {
                            btnHumidityStatu.Text = Language.StringByID(R.MyInternationalizationString.nothing);
                        }
                        else
                        {
                            btnHumidityStatu.Text = bindName;
                        }
                    });
                };
            };
        }
        #endregion