using Shared.SimpleControl.Phone; using System; namespace Shared.SimpleControl.Pad { public class SystemLightSwitch { public void SystemLightSwitchShow (LightSwitch lightSwitch, Common common) { SystemMiddle.ThirdScrolView.RemoveAll (); #region top EditText textButton = new EditText () { X = Application.GetRealWidth (40), Height = Application.GetRealHeight (50), Width = Application.GetRealWidth (400), Text = lightSwitch.Name, Gravity = Gravity.CenterVertical, TextAlignment = TextAlignment.CenterLeft, TextSize = 15, SelectedBackgroundColor = 0xFF000000, }; SystemMiddle.ThirdScrolView.TitleView.AddChidren (textButton); Button editor = new Button () { Height = Application.GetRealHeight (90), Width = Application.GetRealWidth (70), UnSelectedImagePath = "Item/Editor.png", SelectedImagePath = "Item/EditorSelected.png", Gravity = Gravity.CenterVertical, X = Application.GetRealWidth (550) }; SystemMiddle.ThirdScrolView.TitleView.AddChidren (editor); editor.MouseUpEventHandler += (sender, e) => { if (editor.IsSelected) { MainPage.Loading.Start (); editor.IsSelected = textButton.IsSelected = textButton.Enable = false; byte [] remakeBytes = CommonPage.MyEncodingGB2312.GetBytes (textButton.Text.Trim ()); System.Threading.Tasks.Task.Run (() => { byte [] updateBytes = Control.ControlBytesSendHasReturn (Command.ReadDeviceLoopInfo, lightSwitch.SubnetID, lightSwitch.DeviceID, new byte [] { lightSwitch.BigClass,1,lightSwitch.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, lightSwitch.SubnetID, lightSwitch.DeviceID, updateBytes); if (reBytes != null) { Application.RunOnMainThread (() => { lightSwitch.Name = textButton.Text.Trim (); IO.FileUtils.SaveEquipmentMessage (lightSwitch, lightSwitch.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 FrameLayout frameLayoutBody = new FrameLayout () { Height = Application.GetRealHeight (798), Width = LayoutParams.MatchParent, }; SystemMiddle.ThirdScrolView.AddChidren (frameLayoutBody); //---output test Button btnOutput = new Button () { Width = Application.GetRealWidth (200), Height = Application.GetRealHeight (50), X = Application.GetRealWidth (40), Y = Application.GetRealHeight (40), Text = Language.StringByID (R.MyInternationalizationString.Test) + " :", TextAlignment = TextAlignment.CenterLeft, }; frameLayoutBody.AddChidren (btnOutput); Button btnSwitch = new Button () { Width = Application.GetRealWidth (150), Height = Application.GetRealHeight (50), TextAlignment = TextAlignment.Center, X = btnOutput.Right, Y = btnOutput.Y, BackgroundColor = 0xFF333333, SelectedBackgroundColor = SkinStyle.Current.SelectedColor, BorderWidth = 1, Radius = 5, BorderColor = SkinStyle.Current.Transparent, }; if (lightSwitch.CurrentBrightness == 100) { btnSwitch.IsSelected = true; btnSwitch.TextID = R.MyInternationalizationString.ON; } else { btnSwitch.IsSelected = false; btnSwitch.TextID = R.MyInternationalizationString.OFF; } frameLayoutBody.AddChidren (btnSwitch); btnSwitch.MouseUpEventHandler += (sender, e) => { if (btnSwitch.IsSelected) { lightSwitch.CurrentBrightness = 0; btnSwitch.TextID = R.MyInternationalizationString.OFF; btnSwitch.IsSelected = false; } else { lightSwitch.CurrentBrightness = 100; btnSwitch.TextID = R.MyInternationalizationString.ON; btnSwitch.IsSelected = true; } System.Threading.Tasks.Task.Run (() => { if (lightSwitch.Type == DeviceType.LightMixSwitch) { Control.ControlBytesSend (Command.SetSingleLight, lightSwitch.SubnetID, lightSwitch.DeviceID, new byte [] { (lightSwitch as LightMixSwitch).PhysicsLoopID, lightSwitch.CurrentBrightness, lightSwitch.DelayTimeHeight, lightSwitch.DelayTimeLow }, SendCount.Zero); } else Control.ControlBytesSend (Command.SetSingleLight, lightSwitch.SubnetID, lightSwitch.DeviceID, new byte [] { lightSwitch.LoopID, lightSwitch.CurrentBrightness, lightSwitch.DelayTimeHeight, lightSwitch.DelayTimeLow }, SendCount.Zero); }); }; if (lightSwitch.Type != DeviceType.LightMixSwitch) { Button btnSocketText = new Button () { X = Application.GetRealWidth (40), Y = btnSwitch.Bottom + Application.GetRealHeight (50), Width = Application.GetRealWidth (200), Height = Application.GetRealHeight (60), TextID = R.MyInternationalizationString.ElectricalControl, TextAlignment = TextAlignment.CenterLeft, }; frameLayoutBody.AddChidren (btnSocketText); Button btnSocket = new Button () { X = btnSocketText.Right, Y = btnSocketText.Y, Width = Application.GetRealWidth (60), Height = Application.GetRealHeight (59), SelectedImagePath = "Light/CheckOn.png", UnSelectedImagePath = "Light/Check.png", }; frameLayoutBody.AddChidren (btnSocket); btnSocket.IsSelected = lightSwitch.IsSocket; btnSocket.MouseUpEventHandler += (sender, e) => { btnSocket.IsSelected = !btnSocket.IsSelected; if (!btnSocket.IsSelected) { if (UserConfig.Instance.SocketList.Contains (lightSwitch.CommonLoopID)) { UserConfig.Instance.SocketList.Remove (lightSwitch.CommonLoopID); lightSwitch.Type = DeviceType.LightSwitch; } } else { UserConfig.Instance.SocketList.Add (lightSwitch.CommonLoopID); lightSwitch.Type = DeviceType.LightSwitchSocket; } UserConfig.Instance.SaveUserConfig (); IO.FileUtils.SaveEquipmentMessage (lightSwitch, lightSwitch.LoopID.ToString ()); }; } #endregion } } }