From f71e74b5f0d2716fbf05da016cdaa18d64e09f80 Mon Sep 17 00:00:00 2001 From: xm <1271024303@qq.com> Date: 星期四, 31 十二月 2020 17:01:18 +0800 Subject: [PATCH] 又换完成最新门锁。空气质量传感器完成数据和基本配置功能。开发图表和自动化的同事可下载此代码 --- ZigbeeApp/Shared/Phone/UserCenter/Safety/GarrisonAreaDelayedSettionForm.cs | 320 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 320 insertions(+), 0 deletions(-) diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Safety/GarrisonAreaDelayedSettionForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Safety/GarrisonAreaDelayedSettionForm.cs new file mode 100755 index 0000000..2675dde --- /dev/null +++ b/ZigbeeApp/Shared/Phone/UserCenter/Safety/GarrisonAreaDelayedSettionForm.cs @@ -0,0 +1,320 @@ +锘縰sing System; +using System.Collections.Generic; +using System.Text; +using ZigBee.Device; + +namespace Shared.Phone.UserCenter.Safety +{ + /// <summary> + /// 寤舵椂璁剧疆鐨勪富鐣岄潰鈽� + /// </summary> + public class GarrisonAreaDelayedSettionForm : EditorCommonForm + { + #region 鈻� 鍙橀噺澹版槑___________________________ + + /// <summary> + /// 闃插尯鐨勫欢杩熸椂闂� + /// </summary> + private Safeguard.CatDelayTimeResponseData timeResponseData = null; + /// <summary> + /// 杩涘叆寤惰繜鐨勬椂闂存帶浠� + /// </summary> + private NormalViewControl inDelayTimeControl = null; + /// <summary> + /// 澶栧嚭寤惰繜鐨勬椂闂存帶浠� + /// </summary> + private NormalViewControl outDelayTimeControl = null; + + #endregion + + #region 鈻� 鍒濆鍖朹____________________________ + + /// <summary> + /// 鐢婚潰鏄剧ず(搴曞眰浼氬浐瀹氳皟鐢ㄦ鏂规硶锛屽�熶互瀹屾垚鐢婚潰鍒涘缓) + /// </summary> + public void ShowForm() + { + //璁剧疆澶撮儴淇℃伅 + base.SetTitleText(Language.StringByID(R.MyInternationalizationString.uDelayedSettion)); + + //鍒濆鍖栦腑閮ㄤ俊鎭� + this.InitMiddleFrame(); + } + + /// <summary> + /// 鍒濆鍖栦腑閮ㄤ俊鎭� + /// </summary> + private void InitMiddleFrame() + { + //娓呯┖bodyFrame + this.ClearBodyFrame(); + + //鑳屾櫙 + var frameBack = new FrameLayout(); + frameBack.Height = Application.GetRealHeight(423); + frameBack.BackgroundColor = UserCenterColor.Current.White; + bodyFrameLayout.AddChidren(frameBack); + + //璇ュ姛鑳藉彧瀵瑰嚭鍏ラ槻鍖烘湁鏁� + var btnTitle = new NormalViewControl(864, 50, true); + btnTitle.X = ControlCommonResourse.XXLeft; + btnTitle.Y = Application.GetRealHeight(38); + btnTitle.TextSize = 12; + btnTitle.TextColor = UserCenterColor.Current.TextGrayColor2; + btnTitle.TextID = R.MyInternationalizationString.uThisFunctionOnlyInAndOutSectors; + frameBack.AddChidren(btnTitle); + + var frameTable = new FrameListControl(29); + frameTable.Y = btnTitle.Bottom + Application.GetRealHeight(38); + frameTable.Height = frameBack.Height - btnTitle.Bottom - Application.GetRealHeight(38); + bodyFrameLayout.AddChidren(frameTable); + + //娣诲姞鎵�鏈夌殑鑿滃崟 + this.AddAllMenuRow(frameTable); + } + + #endregion + + #region 鈻� 娣诲姞鑿滃崟___________________________ + + /// <summary> + /// 娣诲姞鎵�鏈夌殑鑿滃崟 + /// </summary> + /// <param name="listView"></param> + private async void AddAllMenuRow(FrameListControl listView) + { + //鎵撳紑杩涘害鏉� + this.ShowProgressBar(); + + //鑾峰彇闃插尯鐨勫欢杩熸椂闂�(浠呴檺鍑哄叆闃插尯),鍑洪敊鏃惰繑鍥瀗ull + this.timeResponseData = await HdlSafeguardLogic.Current.GetGarrisonDelayTime(); + if (timeResponseData == null) + { + //鍏抽棴杩涘害鏉� + this.CloseProgressBar(ShowReLoadMode.YES); + return; + } + //鍏抽棴杩涘害鏉� + this.CloseProgressBar(); + + HdlThreadLogic.Current.RunMain(() => + { + //鍒濆鍖栥�愯繘鍏ュ欢鏃躲�戣 + this.InitInDelayedRow(listView); + + //鍒濆鍖栥�愬鍑哄欢鏃躲�戣 + this.InitOutDelayedRow(listView); + }); + } + + #endregion + + #region 鈻� 杩涘叆寤舵椂___________________________ + + /// <summary> + /// 鍒濆鍖栥�愯繘鍏ュ欢鏃躲�戣 + /// </summary> + /// <param name="listView"></param> + private void InitInDelayedRow(FrameListControl listView) + { + var row = new FrameRowControl(listView.rowSpace / 2); + listView.AddChidren(row); + row.Y = 0 - listView.rowSpace; + + //杩涘叆寤舵椂 + row.AddLeftCaption(Language.StringByID(R.MyInternationalizationString.uInDelayed), 500); + //娣诲姞鍙崇澶� + row.AddRightArrow(); + //搴曠嚎 + row.AddBottomLine(); + //鏃堕棿 + string second = Language.StringByID(R.MyInternationalizationString.Second); + this.inDelayTimeControl = row.AddMostRightView(this.GetTimeText(this.timeResponseData.EntranceDelayTime), 200); + this.inDelayTimeControl.TextColor = UserCenterColor.Current.TextGrayColor1; + + row.ButtonClickEvent += (sender, e) => + { + //鏄剧ず寤舵椂鏃堕棿 + this.ShowDelayListTime(1); + }; + } + + #endregion + + #region 鈻� 澶栧嚭寤舵椂___________________________ + + /// <summary> + /// 鍒濆鍖栥�愬鍑哄欢鏃躲�戣 + /// </summary> + /// <param name="listView"></param> + private void InitOutDelayedRow(FrameListControl listView) + { + var row = new FrameRowControl(listView.rowSpace / 2); + listView.AddChidren(row); + + //澶栧嚭寤舵椂 + row.AddLeftCaption(Language.StringByID(R.MyInternationalizationString.uOutDelayed), 500); + //娣诲姞鍙崇澶� + row.AddRightArrow(); + //鏃堕棿 + string second = Language.StringByID(R.MyInternationalizationString.Second); + this.outDelayTimeControl = row.AddMostRightView(this.GetTimeText(this.timeResponseData.GoOutDelayTime), 200); + this.outDelayTimeControl.TextColor = UserCenterColor.Current.TextGrayColor1; + + row.ButtonClickEvent += (sender, e) => + { + //鏄剧ず寤舵椂鏃堕棿 + this.ShowDelayListTime(2); + }; + } + + #endregion + + #region 鈻� 淇濆瓨鏃堕棿___________________________ + + /// <summary> + /// 淇濆瓨鏃堕棿 + /// </summary> + /// <param name="inDelayTime">杩涘叆寤惰繜鏃堕棿</param> + /// <param name="OutDelayTime">澶栧嚭寤惰繜鏃堕棿</param> + private async void SaveTime(int inDelayTime, int OutDelayTime) + { + //鎵撳紑杩涘害鏉� + this.ShowProgressBar(); + var result = await HdlSafeguardLogic.Current.SetGarrisonDelayTime(inDelayTime, OutDelayTime); + //鍏抽棴杩涘害鏉� + this.CloseProgressBar(); + + if (result == true) + { + //淇敼缂撳瓨 + this.timeResponseData.EntranceDelayTime = inDelayTime; + this.timeResponseData.GoOutDelayTime = OutDelayTime; + HdlThreadLogic.Current.RunMain(() => + { + if (this.inDelayTimeControl != null) + { + //鏄剧ず鏃堕棿缈昏瘧鏂囨湰 + this.inDelayTimeControl.Text = this.GetTimeText(inDelayTime); + } + if (this.outDelayTimeControl != null) + { + //鏄剧ず鏃堕棿缈昏瘧鏂囨湰 + this.outDelayTimeControl.Text = this.GetTimeText(OutDelayTime); + } + }); + } + } + + #endregion + + #region 鈻� 鏄剧ず寤舵椂鏃堕棿_______________________ + + /// <summary> + /// 鏄剧ず寤舵椂鏃堕棿鍒楄〃 + /// </summary> + /// <param name="div">1:杩涘叆寤惰繜 2:澶栧嚭寤惰繜</param> + private void ShowDelayListTime(int div) + { + //鍒� + string strMinute = Language.StringByID(R.MyInternationalizationString.uMinute); + //绉� + string strSecond = Language.StringByID(R.MyInternationalizationString.uSecond); + var listfirst = new List<string>(); + var listSecond = new List<List<string>>(); + for (int i = 0; i <= 29; i++) + { + listfirst.Add(i.ToString().PadLeft(2, '0') + strMinute); + var listTemp = new List<string>(); + for (int j = 0; j <= 59; j++) + { + if (i == 0 && j == 0) + { + continue; + } + listTemp.Add(j.ToString().PadLeft(2, '0') + strSecond); + } + listSecond.Add(listTemp); + } + //鍔犱竴涓�30鍒嗛挓鍚� + listfirst.Add("30" + strMinute); + var listTemp2 = new List<string>() { "00" + strSecond }; + listSecond.Add(listTemp2); + + //杩涘叆寤惰繜 + int delayTime = this.timeResponseData.EntranceDelayTime; + string title = Language.StringByID(R.MyInternationalizationString.uInDelayed); + if (div == 2) + { + //澶栧嚭寤惰繜 + delayTime = this.timeResponseData.GoOutDelayTime; + title = Language.StringByID(R.MyInternationalizationString.uOutDelayed); + } + + string value = (delayTime / 60).ToString().PadLeft(2, '0') + strMinute; + int index1 = listfirst.IndexOf(value); + if (index1 == -1) + { + index1 = 0; + } + value = (delayTime % 60).ToString().PadLeft(2, '0') + strSecond; + int index2 = listSecond[index1].IndexOf(value); + if (index2 == -1) + { + index2 = 0; + } + + PickerView.ShowSecondary(listfirst, listSecond, (value1, value2) => + { + int minute = Convert.ToInt32(listfirst[value1].Substring(0, 2)); + int second = Convert.ToInt32(listSecond[value1][value2].Substring(0, 2)); + int delaySecond = minute * 60 + second; + //淇濆瓨鏃堕棿 + if (div == 1) + { + //杩涘叆寤惰繜 + this.SaveTime(delaySecond, this.timeResponseData.GoOutDelayTime); + } + else + { + //澶栧嚭寤惰繜 + this.SaveTime(this.timeResponseData.EntranceDelayTime, delaySecond); + } + }, + index1, index2, title, + Language.StringByID(R.MyInternationalizationString.uFinish), + Language.StringByID(R.MyInternationalizationString.uCancel)); + } + + #endregion + + #region 鈻� 涓�鑸柟娉昣__________________________ + + /// <summary> + /// 鑾峰彇鏃堕棿鐨勭炕璇戞枃鏈� + /// </summary> + /// <param name="timeSecond">绉�</param> + /// <returns></returns> + private string GetTimeText(int timeSecond) + { + string textValue = string.Empty; + //鍒� + int checkValue = timeSecond / 60; + if (checkValue > 0) + { + string minu = Language.StringByID(R.MyInternationalizationString.uMinute); + textValue = checkValue + minu; + } + //绉� + checkValue = timeSecond % 60; + if (checkValue > 0) + { + string second = Language.StringByID(R.MyInternationalizationString.uSecond); + textValue += checkValue + second; + } + return textValue; + } + + #endregion + } +} -- Gitblit v1.8.0