From 18b93d511dc764b469d7c4a7e755f7274f89cdb4 Mon Sep 17 00:00:00 2001 From: 陈嘉乐 <cjl@hdlchina.com.cn> Date: 星期一, 27 四月 2020 17:55:14 +0800 Subject: [PATCH] 2020-4-27-1 --- ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/PanelFangyueFreshAirButtonSettionForm.cs | 320 ++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 312 insertions(+), 8 deletions(-) diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/PanelFangyueFreshAirButtonSettionForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/PanelFangyueFreshAirButtonSettionForm.cs index 17e698e..cb5fbc2 100755 --- a/ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/PanelFangyueFreshAirButtonSettionForm.cs +++ b/ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/PanelFangyueFreshAirButtonSettionForm.cs @@ -1,4 +1,7 @@ 锘縰sing System; +using System.Collections.Generic; +using Shared.Common; +using ZigBee.Common; using ZigBee.Device; namespace Shared.Phone.UserCenter.DevicePanel @@ -13,13 +16,30 @@ /// <summary> /// 鍒楄〃鎺т欢 /// </summary> - private VerticalListControl listview = null; + private FrameListControl listview = null; /// <summary> /// 璁惧鐨勬煇涓�鍥炶矾 /// </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 + #region 鈻� 鍒濆鍖朹____________________________ /// <summary> @@ -29,6 +49,8 @@ public void ShowForm(CommonDevice i_device) { this.deviceObj = i_device; + //鑾峰彇鏁版嵁 + ReadDoorLockUserInfo(deviceObj); //璁剧疆澶撮儴淇℃伅 base.SetTitleText(Language.StringByID(R.MyInternationalizationString.uPanelSettion)); @@ -48,22 +70,26 @@ //娓呯┖bodyFrame this.ClearBodyFrame(); + var listBackControl = new VerticalFrameControl(); + listBackControl.Height = bodyFrameLayout.Height; + bodyFrameLayout.AddChidren(listBackControl); + //鍥剧墖 var btnPic = new PicViewControl(426, 426); btnPic.Y = Application.GetRealHeight(150); btnPic.UnSelectedImagePath = "RealDevice/ButtonPanelFangyueFreshAir.png"; btnPic.Gravity = Gravity.CenterHorizontal; - bodyFrameLayout.AddChidren(btnPic); + listBackControl.frameTable.AddChidren(btnPic); //鍒濆鍖栨甯� var tableContr = new InformationEditorControl(); - this.listview = tableContr.InitControl(bodyFrameLayout, Language.StringByID(R.MyInternationalizationString.uDeviceEditor), 708, 1028); + this.listview = tableContr.InitControl(listBackControl.frameTable, Language.StringByID(R.MyInternationalizationString.uDeviceEditor), 1028); //鍒濆鍖栬彍鍗曡 this.InitMenuRow(); //鍒濆鍖栨甯冨畬鎴� - tableContr.FinishInitControl(bodyFrameLayout, this.listview); + tableContr.FinishInitControl(); tableContr = null; //淇濆瓨 @@ -83,7 +109,67 @@ private void InitMenuRow() { this.listview.RemoveAll(); + //娣诲姞鏂伴鐩爣 + this.AddFreshAirRow(); + //PM2.5鏉ユ簮 + this.AddPMRow(); + //娣诲姞娓╁害鏉ユ簮 + this.AddTemperatureSensorRow(); + //娣诲姞婀垮害鏉ユ簮 + 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> + /// 鏂伴鐩爣琛� + /// </summary> + private void AddFreshAirRow() + { //鏂伴鐩爣 var rowNewWind = new FrameRowControl(listview.rowSpace / 2); listview.AddChidren(rowNewWind); @@ -92,13 +178,231 @@ rowNewWind.AddBottomLine(); //鍙崇澶� rowNewWind.AddRightArrow(); - var btnNewWindStatu = rowNewWind.AddMostRightView("鏂伴1", 700); + + var msg = Language.StringByID(R.MyInternationalizationString.nothing); + if (!string.IsNullOrEmpty(bindFreshAirName)) + { + msg = bindFreshAirName; + } + var btnNewWindStatu = rowNewWind.AddMostRightView(msg, 700); + rowNewWind.ButtonClickEvent += (sender, e) => { - var form = new PanelFangyueEnvironmentTargetForm(); - 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> + /// PM2.5鏉ユ簮琛� + /// </summary> + private void AddPMRow() + { + //PM2.5 + var rowPM = new FrameRowControl(listview.rowSpace / 2); + listview.AddChidren(rowPM); + rowPM.AddLeftCaption(Language.StringByID(R.MyInternationalizationString.PM25Source), 600); + //搴曠嚎 + rowPM.AddBottomLine(); + //鍙崇澶� + rowPM.AddRightArrow(); + var msg = Language.StringByID(R.MyInternationalizationString.nothing); + 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 + + #region 鈻� 娓╁害鏉ユ簮_________________________ + /// <summary> + /// 娓╁害鏉ユ簮琛� + /// </summary> + private void AddTemperatureSensorRow() + { + //娓╁害鏉ユ簮 + var rowTemPerature = new FrameRowControl(listview.rowSpace / 2); + listview.AddChidren(rowTemPerature); + rowTemPerature.AddLeftCaption(Language.StringByID(R.MyInternationalizationString.TemperatureSource), 600); + //搴曠嚎 + rowTemPerature.AddBottomLine(); + //鍙崇澶� + rowTemPerature.AddRightArrow(); + var msg = Language.StringByID(R.MyInternationalizationString.nothing); + 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 + + #region 鈻� 婀垮害鏉ユ簮_________________________ + /// <summary> + /// 婀垮害鏉ユ簮琛� + /// </summary> + private void AddHumiditySourceRow() + { + //婀垮害 + var rowHumidity = new FrameRowControl(listview.rowSpace / 2); + listview.AddChidren(rowHumidity); + rowHumidity.AddLeftCaption(Language.StringByID(R.MyInternationalizationString.HumiditySource), 600); + //搴曠嚎 + rowHumidity.AddBottomLine(); + //鍙崇澶� + rowHumidity.AddRightArrow(); + var msg = Language.StringByID(R.MyInternationalizationString.nothing); + 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 + + #region 鈻� 浜害璋冭妭_________________________ + /// <summary> + /// 浜害璋冭妭琛� + /// </summary> + private void AddLevelRow() + { //浜害璋冭妭 var rowLight = new FrameRowControl(listview.rowSpace / 2); listview.AddChidren(rowLight); -- Gitblit v1.8.0