using System; using System.Collections.Generic; using System.Text; using System.Threading.Tasks; using ZigBee.Device; namespace Shared.Phone.UserCenter.DeviceRelay { /// /// 三路继电器的背光灯设置 /// public class RelayThreeLoadBackLightSettionForm : EditorCommonForm { #region ■ 变量声明___________________________ /// /// 设备Mac地址 /// private string deviceMac = string.Empty; /// /// 亮度调节的信息 /// private Panel.PanelSwitchLevelInfo linghtLevelInfo = null; /// /// 节能模式 /// private Panel.PanelSaveEnergyModeInfo energyModeInfo = null; /// /// 设备列表 /// private List listDevice = null; /// /// 数据是否变更 /// private bool valueChanged = false; #endregion #region ■ 初始化_____________________________ /// /// 画面显示(底层会固定调用此方法,借以完成画面创建) /// public void ShowForm(string i_deviceMac) { this.ScrollEnabled = false; this.deviceMac = i_deviceMac; this.listDevice = Common.LocalDevice.Current.GetDevicesByMac(i_deviceMac); //设置头部信息 base.SetTitleText(Language.StringByID(R.MyInternationalizationString.uBackLight)); //初始化中部信息 this.InitMiddleFrame(); } /// /// 初始化中部信息 /// private void InitMiddleFrame() { //获取设备初始数据 var result = this.GetDeviceDefultData(); if (result == false) { return; } //清空bodyFrame this.ClearBodyFrame(); //点击状态 var btnClickStatu = new NormalViewControl(600, 49, true); btnClickStatu.X = ControlCommonResourse.XXLeft; btnClickStatu.Y = Application.GetRealHeight(207); btnClickStatu.TextSize = 12; btnClickStatu.TextColor = UserCenterColor.Current.TextGrayColor3; btnClickStatu.TextID = R.MyInternationalizationString.uClickStatu; bodyFrameLayout.AddChidren(btnClickStatu); //各种背光灯的容器 var frameLinght = new FrameLayout(); frameLinght.Height = Application.GetRealHeight(818); frameLinght.Y = Application.GetRealHeight(279); frameLinght.BackgroundColor = UserCenterColor.Current.White; bodyFrameLayout.AddChidren(frameLinght); //添加1-6干接点的背光灯进度条 this.AddSixDryContactProgress(frameLinght); //第七干接点的背光灯进度条 this.AddSevenDryContactProgress(frameLinght); //添加节能模式 this.AddEnergyConservationRow(btnClickStatu, frameLinght); //保存 var btnSave = new BottomClickButton(); btnSave.TextID = R.MyInternationalizationString.uSave; bodyFrameLayout.AddChidren(btnSave); btnSave.ButtonClickEvent += (sender, e) => { if (valueChanged == true) { this.ShowProgressBar(); //亮度调节更改(他们说随便一个回路就行) result = HdlDevicePanelLogic.Current.SetDeviceLightSettion(listDevice[0], linghtLevelInfo.panelDirectionsLevel, linghtLevelInfo.panelBacklightLevel); if (result == false) { this.CloseProgressBar(); return; } //节能模式修改(他们说随便一个回路就行) result = HdlDevicePanelLogic.Current.SetDeviceEnergyConservationMode(listDevice[0], energyModeInfo.enable, energyModeInfo.time, energyModeInfo.level); this.CloseProgressBar(); if (result == false) { return; } } //关闭自身 this.CloseForm(); }; } #endregion #region ■ 节能模式行_________________________ /// /// 添加节能模式行 /// /// 点击状态控件(控件伸缩使用) /// 各种背光灯的容器(控件伸缩使用) private void AddEnergyConservationRow(NormalViewControl btnClickStatu, FrameLayout frameLinght) { //缩小:170 扩大:429 var frameBack = new FrameRowControl(); frameBack.BackgroundColor = UserCenterColor.Current.White; frameBack.UseClickStatu = false; frameBack.Height = Application.GetRealHeight(170); bodyFrameLayout.AddChidren(frameBack); //当前亮度(先声明,为了对应IOS的折叠后,没有完全遮挡的问题) var btnProgressView1 = new NormalViewControl(200, 49, true); var btnProgress1 = new NormalViewControl(200, 49, true); //节能模式 frameBack.AddLeftCaption(Language.StringByID(R.MyInternationalizationString.uEnergyConservationMode), 400); //开关控件 var btnSwitch = frameBack.AddMostRightSwitchIcon(); btnSwitch.ButtonClickEvent += (sender, e) => { btnSwitch.IsSelected = !btnSwitch.IsSelected; energyModeInfo.enable = btnSwitch.IsSelected; //展开或者缩小的高度 var value = Application.GetRealHeight(259); if (btnSwitch.IsSelected == true) { frameBack.Height += value; btnClickStatu.Y += value; frameLinght.Y += value; btnProgressView1.Visible = true; btnProgress1.Visible = true; } else { frameBack.Height -= value; btnClickStatu.Y -= value; frameLinght.Y -= value; btnProgressView1.Visible = false; btnProgress1.Visible = false; } //数据变更 valueChanged = true; }; if (energyModeInfo.enable == true) { btnSwitch.IsSelected = true; } //当前亮度 btnProgressView1.X = ControlCommonResourse.XXLeft; btnProgressView1.Y = Application.GetRealHeight(161); btnProgressView1.TextSize = 12; btnProgressView1.TextColor = UserCenterColor.Current.TextGrayColor1; btnProgressView1.TextID = R.MyInternationalizationString.uNowLuminance; frameBack.AddChidren(btnProgressView1); btnProgressView1.Visible = false; btnProgress1.X = Application.GetRealWidth(222); btnProgress1.Y = Application.GetRealHeight(158); btnProgress1.TextSize = 12; btnProgress1.TextColor = UserCenterColor.Current.TextGrayColor1; btnProgress1.Text = energyModeInfo.level + "%"; frameBack.AddChidren(btnProgress1); btnProgress1.Visible = false; //进度条 var seekBar1 = new SeekBarControl(); seekBar1.Y = Application.GetRealHeight(253); seekBar1.ProgressBarColor = 0xff3e99f4; frameBack.AddChidren(seekBar1); seekBar1.ProgressChangedEvent += (div, value) => { btnProgress1.Text = value + "%"; //数据变更 energyModeInfo.level = value; valueChanged = true; }; seekBar1.Progress = energyModeInfo.level; var btnTemp1 = new NormalViewControl(200, 49, true); btnTemp1.X = ControlCommonResourse.XXLeft; btnTemp1.Y = Application.GetRealHeight(325); btnTemp1.TextSize = 12; btnTemp1.TextColor = UserCenterColor.Current.TextGrayColor3; btnTemp1.Text = "0%"; frameBack.AddChidren(btnTemp1); var btnTemp2 = new NormalViewControl(200, 49, true); btnTemp2.X = frameLinght.Width - Application.GetRealWidth(200 + 49); btnTemp2.Y = Application.GetRealHeight(325); btnTemp2.TextAlignment = TextAlignment.CenterRight; btnTemp2.TextSize = 12; btnTemp2.TextColor = UserCenterColor.Current.TextGrayColor3; btnTemp2.Text = "100%"; frameBack.AddChidren(btnTemp2); if (energyModeInfo.enable == true) { //展开或者缩小的高度 var value = Application.GetRealHeight(259); frameBack.Height += value; btnClickStatu.Y += value; frameLinght.Y += value; btnProgressView1.Visible = true; btnProgress1.Visible = true; } } #endregion #region ■ 1-6干接点的背光灯__________________ /// /// 添加1-6干接点的背光灯进度条(这个对应的是【指示灯亮度】) /// /// 各种背光灯的容器 private void AddSixDryContactProgress(FrameLayout frameLinght) { var btnProgressView1 = new NormalViewControl(200, 49, true); btnProgressView1.X = ControlCommonResourse.XXLeft; btnProgressView1.Y = Application.GetRealHeight(29); btnProgressView1.TextSize = 12; btnProgressView1.TextColor = UserCenterColor.Current.TextGrayColor1; btnProgressView1.Text = "Dry1-6"; frameLinght.AddChidren(btnProgressView1); var btnProgress1 = new NormalViewControl(200, 49, true); btnProgress1.X = Application.GetRealWidth(204); btnProgress1.Y = Application.GetRealHeight(29); btnProgress1.TextSize = 12; btnProgress1.TextColor = UserCenterColor.Current.TextGrayColor1; btnProgress1.Text = linghtLevelInfo.panelBacklightLevel + "%"; frameLinght.AddChidren(btnProgress1); //进度条 var seekBar1 = new SeekBarControl(); seekBar1.Y = Application.GetRealHeight(124); seekBar1.ProgressBarColor = 0xfffdb500; frameLinght.AddChidren(seekBar1); seekBar1.ProgressChangedEvent += (div, value) => { btnProgress1.Text = value + "%"; //数据变更 linghtLevelInfo.panelBacklightLevel = value; valueChanged = true; }; seekBar1.Progress = linghtLevelInfo.panelBacklightLevel; var btnTemp1 = new NormalViewControl(200, 49, true); btnTemp1.X = ControlCommonResourse.XXLeft; btnTemp1.Y = Application.GetRealHeight(193); btnTemp1.TextSize = 12; btnTemp1.TextColor = UserCenterColor.Current.TextGrayColor3; btnTemp1.Text = "0%"; frameLinght.AddChidren(btnTemp1); var btnTemp2 = new NormalViewControl(200, 49, true); btnTemp2.X = frameLinght.Width - Application.GetRealWidth(200 + 49); btnTemp2.Y = Application.GetRealHeight(193); btnTemp2.TextAlignment = TextAlignment.CenterRight; btnTemp2.TextSize = 12; btnTemp2.TextColor = UserCenterColor.Current.TextGrayColor3; btnTemp2.Text = "100%"; frameLinght.AddChidren(btnTemp2); //线 var btnLine = new NormalViewControl(Application.GetRealWidth(965), ControlCommonResourse.BottomLineHeight, false); btnLine.Y = Application.GetRealHeight(311); btnLine.Gravity = Gravity.CenterHorizontal; btnLine.BackgroundColor = UserCenterColor.Current.ButtomLine; frameLinght.AddChidren(btnLine); } #endregion #region ■ 第七干接点的背光灯_________________ /// /// 添加第七干接点的背光灯进度条(这个对应的是【背光灯亮度】) /// /// 各种背光灯的容器 private void AddSevenDryContactProgress(FrameLayout frameLinght) { var btnProgressView1 = new NormalViewControl(200, 49, true); btnProgressView1.X = ControlCommonResourse.XXLeft; btnProgressView1.Y = Application.GetRealHeight(369); btnProgressView1.TextSize = 12; btnProgressView1.TextColor = UserCenterColor.Current.TextGrayColor1; btnProgressView1.Text = "Dry7"; frameLinght.AddChidren(btnProgressView1); var btnProgress1 = new NormalViewControl(200, 49, true); btnProgress1.X = Application.GetRealWidth(161); btnProgress1.Y = Application.GetRealHeight(369); btnProgress1.TextSize = 12; btnProgress1.TextColor = UserCenterColor.Current.TextGrayColor1; btnProgress1.Text = linghtLevelInfo.panelDirectionsLevel + "%"; frameLinght.AddChidren(btnProgress1); //进度条 var seekBar1 = new SeekBarControl(); seekBar1.Y = Application.GetRealHeight(464); seekBar1.ProgressBarColor = 0xfffdb500; frameLinght.AddChidren(seekBar1); seekBar1.ProgressChangedEvent += (div, value) => { btnProgress1.Text = value + "%"; //数据变更 linghtLevelInfo.panelDirectionsLevel = value; valueChanged = true; }; seekBar1.Progress = linghtLevelInfo.panelDirectionsLevel; var btnTemp1 = new NormalViewControl(200, 49, true); btnTemp1.X = ControlCommonResourse.XXLeft; btnTemp1.Y = Application.GetRealHeight(533); btnTemp1.TextSize = 12; btnTemp1.TextColor = UserCenterColor.Current.TextGrayColor3; btnTemp1.Text = "0%"; frameLinght.AddChidren(btnTemp1); var btnTemp2 = new NormalViewControl(200, 49, true); btnTemp2.X = frameLinght.Width - Application.GetRealWidth(200 + 49); btnTemp2.Y = Application.GetRealHeight(533); btnTemp2.TextAlignment = TextAlignment.CenterRight; btnTemp2.TextSize = 12; btnTemp2.TextColor = UserCenterColor.Current.TextGrayColor3; btnTemp2.Text = "100%"; frameLinght.AddChidren(btnTemp2); //线 var btnLine = new NormalViewControl(Application.GetRealWidth(965), ControlCommonResourse.BottomLineHeight, false); btnLine.Gravity = Gravity.CenterHorizontal; btnLine.Y = Application.GetRealHeight(651); btnLine.BackgroundColor = UserCenterColor.Current.ButtomLine; frameLinght.AddChidren(btnLine); } #endregion #region ■ 获取初始数据_______________________ /// /// 获取设备初始数据 /// /// private bool GetDeviceDefultData() { //开启进度条 this.ShowProgressBar(); //亮度调节(他们说随便拿一路回路就行了) linghtLevelInfo = HdlDevicePanelLogic.Current.GetDeviceLightSettion(listDevice[0]); if (linghtLevelInfo == null) { //关闭进度条 this.CloseProgressBar(ShowReLoadMode.YES); return false; } //节能模式(他们说随便拿一路回路就行了) energyModeInfo = HdlDevicePanelLogic.Current.GetDeviceEnergyConservationMode(listDevice[0]); if (energyModeInfo == null) { //关闭进度条 this.CloseProgressBar(ShowReLoadMode.YES); return false; } //关闭进度条 this.CloseProgressBar(); return true; } #endregion } }