using System; /// /// 系统后台配置空调模块的页面类 /// namespace Shared.SimpleControl.Phone { public class SystemACHost : FrameLayout { public EquipmentPublicClass epc; public ACMethod acM; public SystemACHost () { epc = new EquipmentPublicClass (); acM = new ACMethod (); } /// /// 显示HVAC空调界面 /// /// The ACH ost. /// Ac host. /// Ac host device. public void ShowACHost (HVAC acHost, Common deviceBase) { #region top RowLayout frameLayout = new RowLayout () { Height = Application.GetRealHeight (100), Width = LayoutParams.MatchParent, BackgroundColor = SkinStyle.Current.MainColor }; AddChidren (frameLayout); Button backButton = new Button () { Height = Application.GetRealHeight (90), Width = Application.GetRealWidth (85), UnSelectedImagePath = "Item/Back.png", SelectedImagePath = "Item/BackSelected.png", Gravity = Gravity.CenterVertical, }; backButton.MouseUpEventHandler += (sender, e) => { (Parent as PageLayout).PageIndex -= 1; //SystemEquipmentBase.RefreshView (deviceBase); }; frameLayout.AddChidren (backButton); EditText textButton = new EditText () { X = Application.GetRealWidth (30) + backButton.Right, Height = Application.GetRealHeight (50), Width = Application.GetRealWidth (400), Text = acHost.Name, Gravity = Gravity.CenterVertical, TextAlignment = TextAlignment.CenterLeft, BackgroundColor = SkinStyle.Current.Transparent, SelectedBackgroundColor = SkinStyle.Current.SysEditBox, Enable = false, TextSize = 15, TextColor = SkinStyle.Current.TextColor1 }; frameLayout.AddChidren (textButton); Button editor = new Button () { X = Application.GetRealWidth (520), Height = Application.GetRealHeight (90), Width = Application.GetRealWidth (70), UnSelectedImagePath = "Item/Editor.png", SelectedImagePath = "Item/EditorSelected.png", Gravity = Gravity.CenterVertical, }; frameLayout.AddChidren (editor); editor.MouseUpEventHandler += (sender, e) => { if (editor.IsSelected) { MainPage.Loading.Start (); editor.IsSelected = textButton.IsSelected = textButton.Enable = false; acHost.Name = textButton.Text.Trim (); byte [] remakeBytes = CommonPage.MyEncodingGB2312.GetBytes (textButton.Text.Trim ()); System.Threading.Tasks.Task.Run (() => { byte [] updateBytes = Control.ControlBytesSendHasReturn (Command.ReadDeviceLoopInfo, acHost.SubnetID, acHost.DeviceID, new byte [] { acHost.BigClass,acHost.MinClass,acHost.LoopID }); if (updateBytes == null) { Application.RunOnMainThread (() => { new Alert (Language.StringByID (R.MyInternationalizationString.Tip), Language.StringByID (R.MyInternationalizationString.TipEquipmentNotOnline), Language.StringByID (R.MyInternationalizationString.Close)).Show (); MainPage.Loading.Hide (); }); return; } byte [] uBytes = new byte [20]; Array.Copy (remakeBytes, 0, uBytes, 0, remakeBytes.Length < 20 ? remakeBytes.Length : 20); Array.Copy (uBytes, 0, updateBytes, 3, 20 < uBytes.Length ? 20 : uBytes.Length); var reBytes = Control.ControlBytesSendHasReturn (Command.SetDeviceLoopInfo, acHost.SubnetID, acHost.DeviceID, updateBytes); if (reBytes != null) { Application.RunOnMainThread (() => { acHost.Name = textButton.Text.Trim (); IO.FileUtils.SaveEquipmentMessage (acHost, acHost.LoopID.ToString ()); MainPage.Loading.Hide (); }); } else { Application.RunOnMainThread (() => { new Alert (Language.StringByID (R.MyInternationalizationString.Tip), Language.StringByID (R.MyInternationalizationString.TipEquipmentNotOnline), Language.StringByID (R.MyInternationalizationString.Close)).Show (); MainPage.Loading.Hide (); }); } }); } else { textButton.Enable = textButton.IsSelected = editor.IsSelected = true; } }; #endregion #region MyRegion byte [] acHostBytes = new byte [13]; FrameLayout frameLayoutBody = new FrameLayout () { Height = Application.GetRealHeight (700), Width = LayoutParams.MatchParent, Y = Application.GetRealHeight (100), }; AddChidren (frameLayoutBody); Button btnSetTemperature = new Button () { Width = Application.GetRealHeight (450), Height = Application.GetRealHeight (45), X = backButton.Right, Y = Application.GetRealHeight (60), TextID = R.MyInternationalizationString.SetTemperature, TextAlignment = TextAlignment.CenterLeft, TextColor = SkinStyle.Current.TextColor1, Enable = false, }; frameLayoutBody.AddChidren (btnSetTemperature); byte temperature = 16; btnSetTemperature.Text = Language.StringByID (R.MyInternationalizationString.SetTemperature).Replace ("--", (temperature).ToString ()); Button btnReduceTemperature = new Button () { Width = Application.GetMinRealAverage (94), Height = Application.GetMinRealAverage (94), X = Application.GetRealWidth (80), Y = btnSetTemperature.Bottom + Application.GetRealHeight (60), UnSelectedImagePath = "AC/AC-.png", SelectedImagePath = "AC/AC-Selected.png", }; frameLayoutBody.AddChidren (btnReduceTemperature); btnReduceTemperature.MouseDownEventHandler += (sender, e) => { btnReduceTemperature.IsSelected = true; }; btnReduceTemperature.MouseUpEventHandler += (sender, e) => { btnReduceTemperature.IsSelected = false; if (temperature > 16 && acHostBytes [9] != 2) { btnSetTemperature.Text = Language.StringByID (R.MyInternationalizationString.SetTemperature).Replace ("--", (--temperature).ToString ()); acHost.SetTemperature = temperature; acM.ControlAC (acHost); } }; Button btnSwitchAC = new Button () { Width = Application.GetMinRealAverage (94), Height = Application.GetMinRealAverage (94), X = Application.GetRealWidth ((640 - 94) / 2), Y = btnReduceTemperature.Y, UnSelectedImagePath = "AC/ACClose.png", SelectedImagePath = "AC/ACCloseSelected.png", }; frameLayoutBody.AddChidren (btnSwitchAC); btnSwitchAC.MouseUpEventHandler += (sender, e) => { if (acHostBytes == null) { return; } if (acHostBytes [8] == 0) { acHostBytes [8] = 1; btnSwitchAC.IsSelected = true; } else { acHostBytes [8] = 0; btnSwitchAC.IsSelected = false; } acHost.Power = acHostBytes[8]; acM.ControlAC (acHost); }; Button btnAddTemperature = new Button () { Width = Application.GetMinRealAverage (94), Height = Application.GetMinRealAverage (94), X = Application.GetRealWidth (640 - 80 - 94), Y = btnReduceTemperature.Y, UnSelectedImagePath = "AC/AC+.png", SelectedImagePath = "AC/AC+Selected.png", }; frameLayoutBody.AddChidren (btnAddTemperature); btnAddTemperature.MouseDownEventHandler += (sender, e) => { btnAddTemperature.IsSelected = true; }; btnAddTemperature.MouseUpEventHandler += (sender, e) => { btnAddTemperature.IsSelected = false; btnReduceTemperature.IsSelected = false; if (temperature < 30 && acHostBytes [9] != 2) { btnSetTemperature.Text = Language.StringByID (R.MyInternationalizationString.SetTemperature).Replace ("--", (++temperature).ToString ()); acHost.SetTemperature = temperature; acM.ControlAC (acHost); } }; #region ModeView FrameLayout acModeView = new FrameLayout () { Height = Application.GetRealHeight (97), Width = LayoutParams.MatchParent, //BackgroundImagePath = "Item/BottomLine.png", Y = btnReduceTemperature.Bottom + Application.GetRealHeight (30), }; frameLayoutBody.AddChidren (acModeView); Button btnACModeLeft = new Button () { Width = Application.GetMinRealAverage (129), Height = Application.GetMinRealAverage (129), X = btnReduceTemperature.X - Application.GetRealWidth (17), Gravity = Gravity.CenterVertical, UnSelectedImagePath = "AC/ACLeft.png", SelectedImagePath = "AC/ACLeft.png", }; acModeView.AddChidren (btnACModeLeft); Button btnModeIcon = new Button () { Width = Application.GetMinRealAverage (110), Height = Application.GetMinRealAverage (110), Gravity = Gravity.Center, UnSelectedImagePath = "AC/ACRefrigeration.png", Enable = false, }; acModeView.AddChidren (btnModeIcon); Button btnACModeRight = new Button () { Width = Application.GetMinRealAverage (129), Height = Application.GetMinRealAverage (129), X = btnAddTemperature.X - Application.GetRealWidth (17), Gravity = Gravity.CenterVertical, UnSelectedImagePath = "AC/ACRight.png", SelectedImagePath = "AC/ACRightSelected.png", }; acModeView.AddChidren (btnACModeRight); btnACModeRight.MouseDownEventHandler += (sender, e) => { btnACModeRight.IsSelected = true; }; btnACModeRight.MouseUpEventHandler += (sender, e) => { btnACModeRight.IsSelected = false; if (++acHostBytes [9] > 4) acHostBytes [9] = 0; acHost.SetMode = acHostBytes [9]; acM.ControlAC (acHost); acM.UpdataACHostModeIcon (acHostBytes [9], btnModeIcon); btnSetTemperature.Text = Language.StringByID (R.MyInternationalizationString.SetTemperature).Replace ("--", (temperature).ToString ()); }; btnACModeLeft.MouseDownEventHandler += (sender, e) => { btnACModeLeft.IsSelected = true; }; btnACModeLeft.MouseUpEventHandler += (sender, e) => { btnACModeLeft.IsSelected = false; try { acHostBytes [9]--; if (acHostBytes [9] < 0) acHostBytes [9] = 4; } catch { acHostBytes [9] = 4; } acHost.SetMode = acHostBytes [9]; acM.ControlAC (acHost); acM.UpdataACHostModeIcon (acHostBytes [9], btnModeIcon); btnSetTemperature.Text = Language.StringByID (R.MyInternationalizationString.SetTemperature).Replace ("--", (temperature).ToString ()); }; #endregion #region WindView FrameLayout acWindView = new FrameLayout () { Height = Application.GetRealHeight (97), Width = LayoutParams.MatchParent, Y = acModeView.Bottom + Application.GetRealHeight (35), //BackgroundImagePath = "Item/BottomLine.png", }; frameLayoutBody.AddChidren (acWindView); Button btnACWindLeft = new Button () { Width = Application.GetMinRealAverage (129), Height = Application.GetMinRealAverage (129), X = btnReduceTemperature.X - Application.GetRealWidth (17), Gravity = Gravity.CenterVertical, UnSelectedImagePath = "AC/ACLeft.png", SelectedImagePath = "AC/ACLeft.png", }; acWindView.AddChidren (btnACWindLeft); Button btnWindIcon = new Button () { Width = Application.GetMinRealAverage (110), Height = Application.GetMinRealAverage (110), Gravity = Gravity.Center, UnSelectedImagePath = "AC/ACAuto.png", Enable = false, }; acWindView.AddChidren (btnWindIcon); Button btnACWindRight = new Button () { Width = Application.GetMinRealAverage (129), Height = Application.GetMinRealAverage (129), X = btnAddTemperature.X - Application.GetRealWidth (17), Gravity = Gravity.CenterVertical, UnSelectedImagePath = "AC/ACRight.png", SelectedImagePath = "AC/ACRightSelected.png", }; acWindView.AddChidren (btnACWindRight); btnACWindLeft.MouseDownEventHandler += (sender, e) => { btnACWindLeft.IsSelected = true; }; btnACWindLeft.MouseUpEventHandler += (sender, e) => { btnACWindLeft.IsSelected = false; try { acHostBytes [10]--; if (acHostBytes [10] < 0) { acHostBytes [10] = 3; } } catch { acHostBytes [10] = 3; } acHost.SetFanSpeed = acHostBytes [10]; acM.ControlAC (acHost); acM.UpdataACHostWindIcon (acHostBytes [10], btnWindIcon); }; btnACWindRight.MouseDownEventHandler += (sender, e) => { btnACWindRight.IsSelected = true; }; btnACWindRight.MouseUpEventHandler += (sender, e) => { btnACWindRight.IsSelected = false; if (++acHostBytes [10] > 3) acHostBytes [10] = 0; acHost.SetFanSpeed = acHostBytes [10]; acM.ControlAC (acHost); acM.UpdataACHostWindIcon (acHostBytes [10], btnWindIcon); }; #endregion #region ----加载完界面之后读取数据刷新界面---- System.Threading.Tasks.Task.Run (() => { acHostBytes = Control.ControlBytesSendHasReturn (Command.ReadACMode, acHost.SubnetID, acHost.DeviceID, new byte [] { acHost.LoopID }); if (acHostBytes == null) { Application.RunOnMainThread (() => { epc.AlertNotOnline (); acHostBytes = new byte [13]; }); } else { Application.RunOnMainThread (() => { temperature = acM.SetACTemperatureText (acHostBytes, btnSetTemperature); btnSetTemperature.Text = Language.StringByID (R.MyInternationalizationString.SetTemperature).Replace ("--", (temperature).ToString ()); if (acHostBytes [8] == 1) { btnSwitchAC.IsSelected = true; } else { btnSwitchAC.IsSelected = false; } // mode Icon acM.UpdataACHostModeIcon (acHostBytes [9], btnModeIcon); // wind Icon acM.UpdataACHostWindIcon (acHostBytes [10], btnWindIcon); }); } }); #endregion #endregion //SystemMiddle.hideBottom (); } } }