New file |
| | |
| | | using 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
|
| | | }
|
| | | }
|