using System; using System.Collections.Generic; using System.Text; using System.Threading.Tasks; using ZigBee.Device; namespace Shared.Phone.UserCenter.DevicePir { /// /// PIR传感器的灯光特效配置界面★ /// public class PirSensorLightSettionForm : UserCenterCommonForm { #region ■ 变量声明___________________________ /// /// 列表控件 /// private VerticalScrolViewLayout listView = null; /// /// 传感器设备 /// private IASZone deviceIASZone = null; /// /// 灯光的配置 /// private IASZone.ConfigureParamates Lightconfigure = null; /// /// 【自动关灯】行 /// private RowSecondRightTextView btnAutoStatu = null; #endregion #region ■ 初始化_____________________________ /// /// 画面显示(底层会固定调用此方法,借以完成画面创建) /// /// 传感器设备 public void ShowForm(IASZone i_iasZone) { deviceIASZone = i_iasZone; //设置头部信息 base.SetTitleText(Language.StringByID(R.MyInternationalizationString.uLightSettion)); //初始化中部信息 this.InitMiddleFrame(); } /// /// 初始化中部信息 /// private void InitMiddleFrame() { this.listView = new VerticalScrolViewLayout(); this.listView.Height = bodyFrameLayout.Height; bodyFrameLayout.AddChidren(this.listView); //添加【自动关灯】行 this.btnAutoStatu = this.AddAutoCloseLightRow(); //添加【光感调节】行 this.AddAutoAdjustLightRow(); //用线程设置灯光的配置信息 this.SetLightSettionData(); } #endregion #region ■ 自动关灯___________________________ /// /// 添加【自动关灯】行 /// /// private RowSecondRightTextView AddAutoCloseLightRow() { var row = new StatuRowLayout(listView); //自动关灯 var btnLight = new RowTopBlackView(false); btnLight.TextID = R.MyInternationalizationString.uAutoCloseLight; row.AddChidren(btnLight); //设置人离开后灯光关闭的时间 var btnMsg = new RowBottomGrayView(false); btnMsg.TextID = R.MyInternationalizationString.uSetLightCloseTimeByPersoinLeave; row.AddChidren(btnMsg); //状态 var btnStatu = new RowSecondRightTextView(); btnStatu.TextColor = UserCenterColor.Current.Gray; row.AddChidren(btnStatu); row.AddRightIconControl(); row.MouseUpEvent += (sender, e) => { List list = new List(); string second = Language.StringByID(R.MyInternationalizationString.Second); list.Add("3 " + second); for (int i = 5; i <= 120; i = i + 5) { list.Add(i + " " + second); } PickerView.Show(list, this.AutoCloseLightSelectAction); }; return btnStatu; } /// /// 自动关灯的选择Action事件 /// /// private async void AutoCloseLightSelectAction(string value) { if (this.Lightconfigure == null) { //重新获取 this.Lightconfigure = await Common.LocalDevice.Current.GetPirSensorLightSettion(deviceIASZone); if (this.Lightconfigure == null) { return; } } string second = Language.StringByID(R.MyInternationalizationString.Second); int spaceTime = Convert.ToInt32(value.Replace(second, string.Empty).Trim()); //保存传感器的灯光的配置信息 var result = await this.SaveLightSettionData(spaceTime, this.Lightconfigure.levelSize); } #endregion #region ■ 光感调节___________________________ /// /// 添加【光感调节】行 /// /// private void AddAutoAdjustLightRow() { var row = new StatuRowLayout(listView); //光感调节 var btnLight = new RowTopBlackView(false); btnLight.TextID = R.MyInternationalizationString.uLightPerceptionRegulation; row.AddChidren(btnLight); //根据环境照度自动开启灯光 var btnMsg = new RowBottomGrayView(false); btnMsg.TextID = R.MyInternationalizationString.uAutoOpenLightByLevel; row.AddChidren(btnMsg); //向右图标 row.AddRightIconControl(); row.MouseUpEvent += (sender, e) => { var form = new PirSensorLightPerceptionRegulationForm(); this.AddForm(form, this.deviceIASZone, Lightconfigure); }; } #endregion #region ■ 获取配置信息_______________________ /// /// 设置灯光的配置信息 /// private async void SetLightSettionData() { //开启进度条 this.ShowProgressBar(); var result = await Common.LocalDevice.Current.GetPirSensorLightSettion(deviceIASZone); if (result == null) { //关闭进度条 this.CloseProgressBar(ShowReLoadMode.YES); return; } //关闭进度条 this.CloseProgressBar(); Application.RunOnMainThread(() => { this.Lightconfigure = result; //设置灯光的配置信息 this.SetLightSettionData(result.transitionTime, result.levelSize); }); } /// /// 设置灯光的配置信息 /// /// /// private void SetLightSettionData(int i_spaceTime, int i_levelSize) { //自动关灯(XX秒) this.btnAutoStatu.Text = i_spaceTime.ToString() + Language.StringByID(R.MyInternationalizationString.Second); } #endregion #region ■ 保存配置___________________________ /// /// 保存传感器的灯光的配置信息 /// /// /// /// private async Task SaveLightSettionData(int i_spaceTime, int i_levelSize) { //开启进度条 this.ShowProgressBar(); //先记录缓存 int spaceTime = this.Lightconfigure.transitionTime; int levelSize = this.Lightconfigure.levelSize; //设置新值 this.Lightconfigure.transitionTime = i_spaceTime; this.Lightconfigure.levelSize = i_levelSize; var result = await Common.LocalDevice.Current.SetPirSensorLightSettion(this.deviceIASZone, this.Lightconfigure); if (result == true) { Application.RunOnMainThread(() => { //设置灯光的配置信息 this.SetLightSettionData(i_spaceTime, i_levelSize); }); } else { //还原缓存 this.Lightconfigure.transitionTime = spaceTime; this.Lightconfigure.levelSize = levelSize; } //关闭进度条 this.CloseProgressBar(); return result; } #endregion } }