using Shared.Common; using ZigBee.Device; namespace Shared.Phone.UserCenter.DevicePanel { public class DataCorrectionForm : EditorCommonForm { #region ■ 变量声明___________________________ /// /// 面板的回路 /// private CommonDevice device; /// /// 保存完成按钮 /// Button btnFinifh; /// /// 校正温度值 /// double correctTValue = 0; /// /// 校正湿度值 /// double correctHValue = 0; /// /// 有效文本 /// private string invalidText1 = ""; /// /// 有效文本 /// private string invalidText2 = ""; #endregion #region ■ 初始化____________________________ /// /// 画面显示(底层会固定调用此方法,借以完成画面创建) /// /// 设备的某一回路 public void ShowForm(CommonDevice device) { this.device = device; //设置头部信息 base.SetTitleText(Language.StringByID(R.MyInternationalizationString.DataCorrection)); //初始化中部信息 this.InitMiddleFrame(); } /// /// 初始化中部信息 /// private async void InitMiddleFrame() { //清空bodyFrame this.ClearBodyFrame(); TemperatureDataUI(); TipUI(); } #endregion #region ■ 温度设置_______________________ /// /// 温度设置 /// private void TemperatureDataUI() { var listview = new VerticalScrolViewLayout(); listview.Height = Application.GetRealHeight(320); bodyFrameLayout.AddChidren(listview); listview.ScrollEnabled = false; for (int i = 0; i < 2; i++) { var rowLayout = new FrameLayout() { Height = Application.GetRealHeight(23 + 127), BackgroundColor = Shared.Common.ZigbeeColor.Current.XMWhite, }; listview.AddChidren(rowLayout); var devicePic = new Button() { X = Application.GetRealWidth(58), Y = Application.GetRealHeight(46), Width = Application.GetMinRealAverage(81), Height = Application.GetMinRealAverage(81), }; rowLayout.AddChidren(devicePic); var btnName = new Button() { Width = Application.GetRealWidth(790), X = devicePic.Right + Application.GetRealWidth(20), TextColor = Shared.Common.ZigbeeColor.Current.TextBlack, TextAlignment = TextAlignment.CenterLeft, TextSize = 15, }; rowLayout.AddChidren(btnName); var tframeLayout = new FrameLayout() { X = Application.GetRealWidth(714 - 29), Y = Application.GetRealHeight(35), Width = Application.GetMinRealAverage(118 + 98 * 2), Height = Application.GetMinRealAverage(81), BackgroundImagePath = "BindPic/CorrectTemperatureBackGround.png", }; rowLayout.AddChidren(tframeLayout); var btnReduction = new Button() { Width = Application.GetMinRealAverage(98), Height = Application.GetMinRealAverage(81), }; tframeLayout.AddChidren(btnReduction); var btnNum = new EditText() { Width = Application.GetMinReal(115), Height = Application.GetRealHeight(80), X = Application.GetRealWidth(98), Text = "0", PlaceholderTextColor = Shared.Common.ZigbeeColor.Current.XMGray3, TextColor = Shared.Common.ZigbeeColor.Current.XMBlack, TextSize = 20, TextAlignment = TextAlignment.Center, }; tframeLayout.AddChidren(btnNum); var btnAdd = new Button() { X = Application.GetRealWidth(98 + 118), Width = Application.GetMinRealAverage(98), Height = Application.GetMinRealAverage(81), }; tframeLayout.AddChidren(btnAdd); var line2 = new Button() { Y = rowLayout.Height - 1, X = devicePic.Right + Application.GetRealWidth(20), Width = Application.GetRealWidth(965 - 116), Height = 1, BackgroundColor = Shared.Common.ZigbeeColor.Current.XMRowLine, }; rowLayout.AddChidren(line2); int curIndex = i; if (curIndex == 0) { devicePic.UnSelectedImagePath = "Device/SensorTemperature.png"; btnName.Text = Language.StringByID(R.MyInternationalizationString.Temperature) + " (℃)"; invalidText1 = btnNum.Text; } else { line2.Visible = false; devicePic.UnSelectedImagePath = "Device/SensorHumidity.png"; btnName.Text = Language.StringByID(R.MyInternationalizationString.Humidity) + " (%)"; invalidText2 = btnNum.Text; } btnNum.TextChangeEventHandler += (sender, e) => { if (!string.IsNullOrEmpty((sender as EditText).Text)) { var curText = (sender as EditText).Text; var textFir = curText.Substring(0, 1); double curV; var res = double.TryParse(curText, out curV); if (!res) { if (textFir != "-") { curV = 0D; new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.NumTip), Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(Common.CommonPage.Instance); return; } } if (curIndex == 0) { correctTValue = curV; } else { correctHValue = curV; } } if (curIndex == 0) { invalidText1 = btnNum.Text; } else { invalidText2 = btnNum.Text; } }; btnReduction.MouseDownEventHandler += async (sender, e) => { if(!string.IsNullOrEmpty(btnNum.Text)) { double vTemp = double.Parse(btnNum.Text); vTemp -= 0.1; btnNum.Text = vTemp.ToString(); if (curIndex == 0) { correctTValue = double.Parse(btnNum.Text); } else { correctHValue = double.Parse(btnNum.Text); } } if (curIndex == 0) { invalidText1 = btnNum.Text; } else { invalidText2 = btnNum.Text; } }; btnAdd.MouseDownEventHandler += async (sender, e) => { if (!string.IsNullOrEmpty(btnNum.Text)) { double vTemp = double.Parse(btnNum.Text); vTemp += 0.1; btnNum.Text = vTemp.ToString(); if (curIndex == 0) { correctTValue = double.Parse(btnNum.Text); } else { correctHValue = double.Parse(btnNum.Text); } } if (curIndex == 0) { invalidText1 = btnNum.Text; } else { invalidText2 = btnNum.Text; } }; } } #endregion #region ■ 底部提示_______________________ /// /// 底部提示 /// private void TipUI() { var bottomFrameLayout = new FrameLayout() { Y = Application.GetRealHeight(1426), Height = Application.GetMinRealAverage(58), }; bodyFrameLayout.AddChidren(bottomFrameLayout); var temperatureAttentionPic = new Button() { Width = Application.GetMinRealAverage(58), Height = Application.GetMinRealAverage(58), UnSelectedImagePath = "BindPic/TemperaTureAttention.png" }; bottomFrameLayout.AddChidren(temperatureAttentionPic); var btnText = new Button() { Width = Application.GetRealWidth(790), X = Application.GetRealWidth(56), TextColor = Shared.Common.ZigbeeColor.Current.XMGray3, TextAlignment = TextAlignment.CenterLeft, TextSize = 12, Text = Language.StringByID(R.MyInternationalizationString.DataCorrectionTip), }; bottomFrameLayout.AddChidren(btnText); btnFinifh = new Button() { Width = Application.GetRealWidth(907), Height = Application.GetRealHeight(127), Y = Application.GetRealHeight(1426 + 58 + 12), Gravity = Gravity.CenterHorizontal, Radius = (uint)Application.GetRealHeight(127) / 2, TextID = R.MyInternationalizationString.Save, BackgroundColor = Shared.Common.ZigbeeColor.Current.XMBlack, TextColor = Shared.Common.ZigbeeColor.Current.XMWhite, IsBold = true, TextSize = 16, }; bodyFrameLayout.AddChidren(btnFinifh); btnFinifh.MouseUpEventHandler += (sender, e) => { SaveTarget(); }; bottomFrameLayout.Width = temperatureAttentionPic.Width + Application.GetRealWidth(10) + btnText.GetTextWidth(); bottomFrameLayout.Gravity = Gravity.CenterHorizontal; } #endregion #region ■ 保存_______________________ /// /// 保存 /// /// void SaveTarget() { System.Threading.Tasks.Task.Run(async () => { try { if (string.IsNullOrEmpty(invalidText1) ) { Application.RunOnMainThread(() => { new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.TNumTip), Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(Common.CommonPage.Instance); }); return; } if ( string.IsNullOrEmpty(invalidText2)) { Application.RunOnMainThread(() => { new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.HNumTip), Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(Common.CommonPage.Instance); }); return; } Application.RunOnMainThread(() => { CommonPage.Loading.Start(); }); this.ShowProgressBar(); bool result = false; int direction = 0; double sendValue = 0; //温度 sendValue = correctTValue; if (correctTValue > 0) { direction = 1; } else if (correctTValue < 0) { direction = 2; sendValue = System.Math.Abs(correctTValue); } result = await HdlDevicePanelLogic.Current.CorrectTemperature(device, sendValue, direction, 0); if (result == false) { Application.RunOnMainThread(() => { CommonPage.Loading.Hide(); }); return; } //湿度 direction = 0; sendValue = correctHValue; if (correctHValue > 0) { direction = 1; } else if (correctHValue < 0) { direction = 2; sendValue = (-1) * correctHValue; } result = await HdlDevicePanelLogic.Current.CorrectTemperature(device, sendValue, direction, 1); if (result == false) { Application.RunOnMainThread(() => { CommonPage.Loading.Hide(); }); return; } Application.RunOnMainThread(() => { new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.SetSuccessXm), Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(Common.CommonPage.Instance); CommonPage.Loading.Hide(); }); } catch { } }); } #endregion } }