From d6fb0646531172f23648441c224cdcccd721b894 Mon Sep 17 00:00:00 2001 From: xm <1271024303@qq.com> Date: 星期一, 14 十二月 2020 09:59:01 +0800 Subject: [PATCH] 请合并代码,完成晾衣架最终功能。 --- ZigbeeApp/Shared/Phone/UserCenter/Device/PirSensor/PirSensorWorkModeMenuForm.cs | 308 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 308 insertions(+), 0 deletions(-) diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Device/PirSensor/PirSensorWorkModeMenuForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Device/PirSensor/PirSensorWorkModeMenuForm.cs new file mode 100755 index 0000000..428221f --- /dev/null +++ b/ZigbeeApp/Shared/Phone/UserCenter/Device/PirSensor/PirSensorWorkModeMenuForm.cs @@ -0,0 +1,308 @@ +锘縰sing System; +using System.Collections.Generic; +using System.Text; +using System.Threading.Tasks; +using ZigBee.Device; + +namespace Shared.Phone.UserCenter.DevicePirSensor +{ + /// <summary> + /// pir浼犳劅鍣ㄧ殑宸ヤ綔妯″紡鐨勮彍鍗曠晫闈� + /// </summary> + public class PirSensorWorkModeMenuForm : EditorCommonForm + { + #region 鈻� 鍙橀噺澹版槑___________________________ + + /// <summary> + /// pir浼犳劅鍣ㄥ璞� + /// </summary> + private IASZone iASZone = null; + /// <summary> + /// 浼犳劅鍣ㄧ殑閰嶇疆淇℃伅 + /// </summary> + private IASZone.ConfigureParamates pirConfigure = null; + /// <summary> + /// 鏁版嵁鏄惁鏇存敼 + /// </summary> + private bool isDataChanged = false; + + #endregion + + #region 鈻� 鍒濆鍖朹____________________________ + + /// <summary> + /// 鐢婚潰鏄剧ず(搴曞眰浼氬浐瀹氳皟鐢ㄦ鏂规硶锛屽�熶互瀹屾垚鐢婚潰鍒涘缓) + /// </summary> + /// <param name="i_iASZone">pir浼犳劅鍣�</param> + public void ShowForm(IASZone i_iASZone) + { + this.iASZone = i_iASZone; + + //璁剧疆澶撮儴淇℃伅 + base.SetTitleText(Language.StringByID(R.MyInternationalizationString.uWorkMode)); + + HdlThreadLogic.Current.RunThread(() => + { + //鑾峰彇鍒濆鏁版嵁 + var result = this.GetDeviceAllDefultData(); + if (result == false) + { + return; + } + HdlThreadLogic.Current.RunMain(() => + { + //鍒濆鍖栦腑閮ㄤ俊鎭� + this.InitMiddleFrame(); + }); + }); + } + + /// <summary> + /// 鍒濆鍖栦腑閮ㄤ俊鎭� + /// </summary> + private void InitMiddleFrame() + { + var frameBack = new FrameLayout(); + frameBack.Height = Application.GetRealHeight(11); + frameBack.BackgroundColor = UserCenterColor.Current.White; + bodyFrameLayout.AddChidren(frameBack); + + var listView = new VerticalListControl(12); + listView.Height = Application.GetRealHeight(700); + listView.Y = frameBack.Bottom; + listView.BackgroundColor = UserCenterColor.Current.White; + bodyFrameLayout.AddChidren(listView); + + //娣诲姞鎺у埗妯″紡琛� + this.AddControlModeRow(listView); + + //娣诲姞瑙﹀彂妯″紡琛� + this.AddTriggerModeRow(listView); + + //娣诲姞涓婃姤闂撮殧琛� + this.AddReportTimeSpaceRow(listView); + + //璋冩暣楂樺害 + listView.AdjustRealHeight(Application.GetRealHeight(23)); + + //淇濆瓨 + var btnSave = new BottomClickButton(); + btnSave.TextID = R.MyInternationalizationString.uSave; + bodyFrameLayout.AddChidren(btnSave); + btnSave.ButtonClickEvent += (sender, e) => + { + if (this.isDataChanged == false) + { + //鏁版嵁娌℃湁鍙樻洿杩�,鍏抽棴鐣岄潰 + this.CloseForm(); + return; + } + HdlThreadLogic.Current.RunThread(() => + { + //淇濆瓨Pir浼犳劅鍣ㄦ暟鎹� + this.SavePirSensorData(); + }); + }; + //鏌ョ湅妯℃澘鏃�,涓嶅厑璁哥紪杈� + if (Common.Config.Instance.Home.IsShowTemplate == true) + { + btnSave.CanClick = false; + } + } + + #endregion + + #region 鈻� 鎺у埗妯″紡___________________________ + + /// <summary> + /// 娣诲姞鎺у埗妯″紡琛� + /// </summary> + /// <param name="listView"></param> + private void AddControlModeRow(VerticalListControl listView) + { + var listSelect = new List<string>(); + //鍏ㄨ嚜鍔ㄦā寮� + listSelect.Add(Language.StringByID(R.MyInternationalizationString.uFullAutoMode)); + //鍗婅嚜鍔ㄦā寮� + listSelect.Add(Language.StringByID(R.MyInternationalizationString.uHafeAutoMode)); + + //鎺у埗妯″紡 + var row1 = new FrameRowControl(listView.rowSpace / 2); + listView.AddChidren(row1); + var btnCaption1 = row1.AddLeftCaption(Language.StringByID(R.MyInternationalizationString.uControlMode), 400); + btnCaption1.TextSize = 15; + row1.AddRightArrow(); + var btnStatu = row1.AddMostRightView(this.pirConfigure.mode == 0 ? listSelect[1] : listSelect[0], 400); + row1.AddBottomLine(); + row1.ButtonClickEvent += (sender, e) => + { + var form = new BottomItemSelectForm(); + form.AddForm(btnCaption1.Text, listSelect, null, this.pirConfigure.mode == 0 ? 1 : 0); + form.FinishSelectEvent += (value) => + { + this.isDataChanged = true; + + btnStatu.Text = listSelect[value]; + this.pirConfigure.mode = value == 0 ? 1 : 0; + }; + }; + //鏌ョ湅妯℃澘鏃�,涓嶅厑璁哥紪杈� + if (Common.Config.Instance.Home.IsShowTemplate == true) + { + row1.CanClick = false; + } + } + + #endregion + + #region 鈻� 瑙﹀彂妯″紡___________________________ + + /// <summary> + /// 娣诲姞瑙﹀彂妯″紡琛� + /// </summary> + /// <param name="listView"></param> + private void AddTriggerModeRow(VerticalListControl listView) + { + var listSelect = new List<string>(); + //璋冨厜妯″紡 + listSelect.Add(Language.StringByID(R.MyInternationalizationString.uDimmingMode)); + //寮�鍏虫ā寮� + listSelect.Add(Language.StringByID(R.MyInternationalizationString.uSwitchMode)); + + //瑙﹀彂妯″紡 + var row2 = new FrameRowControl(listView.rowSpace / 2); + listView.AddChidren(row2); + var btnCaption2 = row2.AddLeftCaption(Language.StringByID(R.MyInternationalizationString.uTriggerMode), 400); + btnCaption2.TextSize = 15; + row2.AddRightArrow(); + var btnStatu2 = row2.AddMostRightView(this.pirConfigure.type == 0 ? listSelect[0] : listSelect[1], 400); + row2.AddBottomLine(); + row2.ButtonClickEvent += (sender, e) => + { + var form = new BottomItemSelectForm(); + form.AddForm(btnCaption2.Text, listSelect, null, this.pirConfigure.type); + form.FinishSelectEvent += (value) => + { + this.isDataChanged = true; + btnStatu2.Text = listSelect[value]; + + this.pirConfigure.type = value; + //濡傛灉鏄皟鍏夋ā寮�,鍒欒繘鍏ヤ笅涓�涓晫闈� + if (value == 0) + { + var form2 = new PirSensorDimmingModeForm(); + form2.AddForm(pirConfigure); + } + }; + }; + //鏌ョ湅妯℃澘鏃�,涓嶅厑璁哥紪杈� + if (Common.Config.Instance.Home.IsShowTemplate == true) + { + row2.CanClick = false; + } + } + + #endregion + + #region 鈻� 涓婃姤闂撮殧___________________________ + + /// <summary> + /// 娣诲姞涓婃姤闂撮殧琛� + /// </summary> + /// <param name="listView"></param> + private void AddReportTimeSpaceRow(VerticalListControl listView) + { + var listTime = new List<string>(); + var miao = Language.StringByID(R.MyInternationalizationString.uSecond); + for (int i = 10; i <= 300; i += 5) + { + listTime.Add(i + miao); + } + //璁╁畠澶勪簬5鐨勬暣鍊嶆暟 + this.pirConfigure.iasReportPeriod = (this.pirConfigure.iasReportPeriod / 5) * 5; + int index = listTime.IndexOf(this.pirConfigure.iasReportPeriod + miao); + + //涓婃姤闂撮殧 + var row3 = new FrameRowControl(listView.rowSpace / 2); + listView.AddChidren(row3); + var btnCaption3 = row3.AddLeftCaption(Language.StringByID(R.MyInternationalizationString.uReportTimeSpace), 400); + btnCaption3.TextSize = 15; + row3.AddRightArrow(); + var btnStatu3 = row3.AddMostRightView(this.pirConfigure.iasReportPeriod + miao, 400); + row3.ButtonClickEvent += (sender, e) => + { + PickerView.Show(listTime, (value) => + { + this.isDataChanged = true; + + btnStatu3.Text = listTime[value]; + this.pirConfigure.iasReportPeriod = Convert.ToInt32(listTime[value].Replace(miao, string.Empty)); + + }, index == -1 ? 0 : index, btnCaption3.Text, + Language.StringByID(R.MyInternationalizationString.uFinish), + Language.StringByID(R.MyInternationalizationString.uCancel)); + }; + //鏌ョ湅妯℃澘鏃�,涓嶅厑璁哥紪杈� + if (Common.Config.Instance.Home.IsShowTemplate == true) + { + row3.CanClick = false; + } + } + + #endregion + + #region 鈻� 鑾峰彇鍒濆鏁版嵁_______________________ + + /// <summary> + /// 鑾峰彇鍒濆鏁版嵁 + /// </summary> + /// <returns></returns> + private bool GetDeviceAllDefultData() + { + //鎵撳紑杩涘害鏉� + this.ShowProgressBar(); + + //鑾峰彇PIR浼犳劅鍣ㄧ殑銆愰厤缃俊鎭�� + this.pirConfigure = HdlDevicePirSensorLogic.Current.GetPirSensorLightSettion(this.iASZone); + if (pirConfigure == null) + { + //鍏抽棴杩涘害鏉� + this.CloseProgressBar(ShowReLoadMode.YES); + return false; + } + //鍏抽棴杩涘害鏉� + this.CloseProgressBar(); + + return true; + } + + #endregion + + #region 鈻� 鏁版嵁淇濆瓨___________________________ + + /// <summary> + /// 淇濆瓨Pir浼犳劅鍣ㄦ暟鎹� + /// </summary> + private void SavePirSensorData() + { + //鎵撳紑杩涘害鏉� + this.ShowProgressBar(); + //淇濆瓨閰嶇疆淇℃伅 + var result = HdlDevicePirSensorLogic.Current.SetPirSensorSettion(this.iASZone, this.pirConfigure); + + //鍏抽棴杩涘害鏉� + this.CloseProgressBar(); + + if (result == true) + { + HdlThreadLogic.Current.RunMain(() => + { + //鐣岄潰鍏抽棴 + this.CloseForm(); + }); + } + } + + #endregion + } +} -- Gitblit v1.8.0