using System; using System.Collections.Generic; using System.Text; using System.Threading.Tasks; using ZigBee.Device; namespace Shared.Phone.UserCenter.DevicePirSensor { /// /// pir传感器的工作模式的菜单界面 /// public class PirSensorWorkModeMenuForm : EditorCommonForm { #region ■ 变量声明___________________________ /// /// pir传感器对象 /// private IASZone iASZone = null; /// /// 传感器的配置信息 /// private IASZone.ConfigureParamates pirConfigure = null; /// /// 数据是否更改 /// private bool isDataChanged = false; #endregion #region ■ 初始化_____________________________ /// /// 画面显示(底层会固定调用此方法,借以完成画面创建) /// /// pir传感器 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(); }); }); } /// /// 初始化中部信息 /// 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(); }); }; } #endregion #region ■ 控制模式___________________________ /// /// 添加控制模式行 /// /// private void AddControlModeRow(VerticalListControl listView) { var listSelect = new List(); //全自动模式 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, this.pirConfigure.mode == 0 ? 1 : 0); form.FinishSelectEvent += (value) => { this.isDataChanged = true; btnStatu.Text = listSelect[value]; this.pirConfigure.mode = value == 0 ? 1 : 0; }; }; } #endregion #region ■ 触发模式___________________________ /// /// 添加触发模式行 /// /// private void AddTriggerModeRow(VerticalListControl listView) { var listSelect = new List(); //调光模式 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, 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); } }; }; } #endregion #region ■ 上报间隔___________________________ /// /// 添加上报间隔行 /// /// private void AddReportTimeSpaceRow(VerticalListControl listView) { var listTime = new List(); 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)); }; } #endregion #region ■ 获取初始数据_______________________ /// /// 获取初始数据 /// /// 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 ■ 数据保存___________________________ /// /// 保存Pir传感器数据 /// 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 } }