using System.Collections.Generic;
|
using System;
|
namespace Shared.SimpleControl.Phone
|
{
|
public class SystemLightMixDimming : FrameLayout
|
{
|
public void SystemLightMixDimmingShow (LightMixDimming lightMixDimming, Common common)
|
{
|
byte [] lightDimmingBytes = new byte [26];
|
#region top
|
RowLayout topTitleView = new RowLayout () {
|
Height = Application.GetRealHeight (100),
|
BackgroundColor = SkinStyle.Current.MainColor
|
};
|
AddChidren (topTitleView);
|
Button backButton = new Button () {
|
X = Application.GetRealWidth (0),
|
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 (common);
|
//SystemMiddle.VerticalScrolViewMiddle.Animate = Animate.RightToLeft;
|
};
|
topTitleView.AddChidren (backButton);
|
|
EditText textButton = new EditText () {
|
X = Application.GetRealWidth (30) + backButton.Right,
|
Height = Application.GetRealHeight (50),
|
Width = Application.GetRealWidth (400),
|
Text = lightMixDimming.Name,
|
TextAlignment = TextAlignment.CenterLeft,
|
Gravity = Gravity.CenterVertical,
|
BackgroundColor = SkinStyle.Current.Transparent,
|
SelectedBackgroundColor = SkinStyle.Current.SysEditBox,
|
Enable = false,
|
TextColor = SkinStyle.Current.TextColor1
|
};
|
topTitleView.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,
|
};
|
topTitleView.AddChidren (editor);
|
EventHandler<MouseEventArgs> eHandler = new EventHandler<MouseEventArgs> ((sender, e) => {
|
if (editor.IsSelected) {
|
MainPage.Loading.Start ();
|
byte [] remakeBytes = CommonPage.MyEncodingGB2312.GetBytes (textButton.Text.Trim ());
|
textButton.IsSelected = editor.IsSelected = textButton.Enable = false;
|
System.Threading.Tasks.Task.Run (() => {
|
byte [] updateBytes = Control.ControlBytesSendHasReturn (Command.ReadDeviceLoopInfo, lightMixDimming.SubnetID, lightMixDimming.DeviceID, new byte [] {
|
lightMixDimming.BigClass,lightMixDimming.MinClass,lightMixDimming.LoopID
|
});
|
if (updateBytes == null) {
|
Application.RunOnMainThread (() => {
|
MainPage.Loading.Hide ();
|
new Alert (Language.StringByID (R.MyInternationalizationString.Tip), Language.StringByID (R.MyInternationalizationString.TipEquipmentNotOnline), Language.StringByID (R.MyInternationalizationString.Close)).Show ();
|
});
|
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, lightMixDimming.SubnetID, lightMixDimming.DeviceID, updateBytes);
|
if (reBytes != null) {
|
Application.RunOnMainThread (() => {
|
lightMixDimming.Name = textButton.Text.Trim ();
|
IO.FileUtils.SaveEquipmentMessage (lightMixDimming, lightMixDimming.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;
|
}
|
});
|
editor.MouseUpEventHandler += eHandler;
|
#endregion
|
|
FrameLayout frameLayoutBody = new FrameLayout () {
|
Y = Application.GetRealHeight (100),
|
Height = Application.GetRealHeight (700),
|
};
|
AddChidren (frameLayoutBody);
|
|
Button btnMaximum = new Button () {
|
Width = Application.GetRealHeight (150),
|
Height = Application.GetRealHeight (45),
|
X = backButton.Right,
|
Y = Application.GetRealHeight (60),
|
TextID = R.MyInternationalizationString.MaximumOutput,
|
TextAlignment = TextAlignment.CenterLeft,
|
Enable = false,
|
TextColor = SkinStyle.Current.TextColor1
|
};
|
frameLayoutBody.AddChidren (btnMaximum);
|
EditText etMaxout = new EditText () {
|
X = btnMaximum.Right,
|
Y = btnMaximum.Y,
|
Width = Application.GetRealWidth (300),
|
Height = btnMaximum.Height,
|
Text = lightMixDimming.MaxLevel.ToString (),
|
TextAlignment = TextAlignment.CenterLeft,
|
BackgroundColor = SkinStyle.Current.SubtitleView,
|
TextColor = SkinStyle.Current.TextColor1
|
};
|
frameLayoutBody.AddChidren (etMaxout);
|
//---Min
|
Button btnMinimum = new Button () {
|
Width = Application.GetRealHeight (150),
|
Height = Application.GetRealHeight (45),
|
X = backButton.Right,
|
Y = btnMaximum.Bottom + Application.GetRealHeight (20),
|
TextID = R.MyInternationalizationString.MinimumOutput,
|
TextAlignment = TextAlignment.CenterLeft,
|
Enable = false,
|
TextColor = SkinStyle.Current.TextColor1
|
};
|
frameLayoutBody.AddChidren (btnMinimum);
|
EditText etMinout = new EditText () {
|
X = btnMinimum.Right,
|
Y = btnMinimum.Y,
|
Width = Application.GetRealWidth (300),
|
Height = btnMaximum.Height,
|
Text = lightMixDimming.Minimum.ToString (),
|
TextAlignment = TextAlignment.CenterLeft,
|
BackgroundColor = SkinStyle.Current.SubtitleView,
|
TextColor = SkinStyle.Current.TextColor1
|
};
|
frameLayoutBody.AddChidren (etMinout);
|
|
var lblDelayTime = new Button () {
|
X = backButton.Right,
|
Y = etMinout.Bottom + Application.GetRealHeight (20),
|
Width = Application.GetRealWidth (200),
|
Height = btnMaximum.Height,
|
TextID = R.MyInternationalizationString.DelayTime,
|
TextAlignment = TextAlignment.CenterLeft,
|
TextColor = SkinStyle.Current.TextColor1
|
};
|
//frameLayoutBody.AddChidren (lblDelayTime);
|
var etDelayTime = new EditText () {
|
X = lblDelayTime.Right + Application.GetRealWidth (10),
|
Y = etMinout.Bottom + Application.GetRealHeight (20),
|
Width = Application.GetRealWidth (240),
|
Height = lblDelayTime.Height,
|
TextAlignment = TextAlignment.CenterLeft,
|
Text = " " + (lightMixDimming.DelayTimeHeight * 256 + lightMixDimming.DelayTimeLow),
|
BackgroundColor = SkinStyle.Current.SubtitleView,
|
TextColor = SkinStyle.Current.TextColor1
|
};
|
//frameLayoutBody.AddChidren (etDelayTime);
|
|
Button btnSave = new Button () {
|
Width = Application.GetRealWidth (150),
|
Height = Application.GetRealHeight (50),
|
X = (Application.CurrentWidth - Application.GetRealWidth (150)) / 2,
|
Y = etMinout.Bottom + Application.GetRealHeight (20),
|
BackgroundColor = SkinStyle.Current.ButtonColor,
|
SelectedBackgroundColor = SkinStyle.Current.SelectedColor,
|
BorderWidth = 1,
|
Radius = 5,
|
BorderColor = SkinStyle.Current.Transparent,
|
TextID = R.MyInternationalizationString.SAVE,
|
TextAlignment = TextAlignment.Center,
|
TextColor = SkinStyle.Current.TextColor1
|
};
|
frameLayoutBody.AddChidren (btnSave);
|
btnSave.MouseUpEventHandler += (sender, e) => {
|
int dtime;
|
if (int.TryParse (etDelayTime.Text.Trim ().ToString (), out dtime)) {
|
if (dtime > 3600 || dtime < 0) {
|
new Alert (Language.StringByID (R.MyInternationalizationString.Tip), Language.StringByID (R.MyInternationalizationString.PleaseEnterTheNumberTwo), Language.StringByID (R.MyInternationalizationString.Close)).Show ();
|
return;
|
}
|
} else {
|
new Alert (Language.StringByID (R.MyInternationalizationString.Tip), Language.StringByID (R.MyInternationalizationString.PleaseEnterTheNumberTwo), Language.StringByID (R.MyInternationalizationString.Close)).Show ();
|
return;
|
}
|
lightMixDimming.DelayTimeHeight = (byte)(Convert.ToInt32 (etDelayTime.Text.Trim ()) / 256);
|
lightMixDimming.DelayTimeLow = (byte)(Convert.ToInt32 (etDelayTime.Text.Trim ()) % 256);
|
IO.FileUtils.SaveEquipmentMessage (lightMixDimming, lightMixDimming.LoopID.ToString ());
|
|
byte MaxoutByte = Convert.ToByte (etMaxout.Text.Trim ());
|
byte MinoutByte = Convert.ToByte (etMinout.Text.Trim ());
|
if (lightMixDimming.MaxLevel == MaxoutByte && lightMixDimming.Minimum == MinoutByte) {
|
IO.FileUtils.SaveEquipmentMessage (lightMixDimming, lightMixDimming.LoopID.ToString ());
|
new Alert (Language.StringByID (R.MyInternationalizationString.Tip), Language.StringByID (R.MyInternationalizationString.ThePerationWasSuccessful), Language.StringByID (R.MyInternationalizationString.Close)).Show ();
|
return;
|
}
|
System.Threading.Tasks.Task.Run (() => {
|
try {
|
if (MaxoutByte < MinoutByte || MaxoutByte > 100 || MaxoutByte < 0 || MinoutByte > 100 || MinoutByte < 0)
|
throw new Exception ();
|
lightDimmingBytes [23] = MinoutByte;
|
lightDimmingBytes [24] = MaxoutByte;
|
|
} catch {
|
System.Threading.Tasks.Task.Run (() => {
|
new Alert (Language.StringByID (R.MyInternationalizationString.Tip), Language.StringByID (R.MyInternationalizationString.PleaseEnterTheCorrectData),
|
Language.StringByID (R.MyInternationalizationString.Close)).Show ();
|
});
|
}
|
byte [] usefulBytes = Control.ControlBytesSendHasReturn (Command.SetDeviceLoopInfo, lightMixDimming.SubnetID, lightMixDimming.DeviceID, lightDimmingBytes);
|
if (usefulBytes == null) {
|
Application.RunOnMainThread (() => {
|
new Alert (Language.StringByID (R.MyInternationalizationString.Tip), Language.StringByID (R.MyInternationalizationString.ModifythefailurePleasechecktheequipmentisonline), Language.StringByID (R.MyInternationalizationString.Close)).Show ();
|
});
|
return;
|
} else {
|
lightMixDimming.MaxLevel = MaxoutByte;
|
lightMixDimming.Minimum = MinoutByte;
|
IO.FileUtils.SaveEquipmentMessage (lightMixDimming, lightMixDimming.LoopID.ToString ());
|
Application.RunOnMainThread (() => {
|
new Alert (Language.StringByID (R.MyInternationalizationString.Tip), Language.StringByID (R.MyInternationalizationString.ThePerationWasSuccessful), Language.StringByID (R.MyInternationalizationString.Close)).Show ();
|
});
|
}
|
});
|
};
|
|
Button btnDimmingText = new Button () {
|
X = backButton.Right,
|
Y = btnSave.Bottom + Application.GetRealHeight (100),
|
Width = Application.GetRealWidth (130),
|
Height = Application.GetRealHeight (60),
|
TextID = R.MyInternationalizationString.DimmingFunction,
|
TextAlignment = TextAlignment.CenterLeft,
|
TextColor = SkinStyle.Current.TextColor1,
|
};
|
|
frameLayoutBody.AddChidren (btnDimmingText);
|
|
Button btnDimming = new Button () {
|
X = btnDimmingText.Right,
|
Y = btnSave.Bottom + Application.GetRealHeight (100),
|
Width = Application.GetRealWidth (60),
|
Height = Application.GetRealHeight (59),
|
SelectedImagePath = "Light/CheckOn.png",
|
UnSelectedImagePath = "Light/Check.png",
|
};
|
frameLayoutBody.AddChidren (btnDimming);
|
btnDimming.IsSelected = lightMixDimming.DimmingFunction;
|
|
Button btnSwitch = new Button () {
|
Y = btnDimming.Y,
|
X = btnDimming.Right + Application.GetRealWidth (70),
|
Width = Application.GetRealWidth (200),
|
Height = Application.GetRealHeight (60),
|
BackgroundColor = SkinStyle.Current.ButtonColor,
|
SelectedBackgroundColor = SkinStyle.Current.SelectedColor,
|
BorderWidth = 1,
|
Radius = 5,
|
BorderColor = SkinStyle.Current.Transparent,
|
TextID = R.MyInternationalizationString.ON,
|
TextColor = SkinStyle.Current.TextColor1
|
};
|
frameLayoutBody.AddChidren (btnSwitch);
|
|
FrameLayout MianSeekBarView = new FrameLayout () {
|
Width = Application.GetRealWidth (640),
|
Height = Application.GetRealHeight (80),
|
Y = btnDimming.Bottom + Application.GetRealHeight (20),
|
};
|
frameLayoutBody.AddChidren (MianSeekBarView);
|
var btnMinBrightness = new Button () {
|
Width = Application.GetRealWidth (100),
|
Height = Application.GetRealHeight (80),
|
Text = "0%",
|
TextAlignment = TextAlignment.CenterRight,
|
};
|
MianSeekBarView.AddChidren (btnMinBrightness);
|
|
var tempSeekBarFrame = new FrameLayout () {
|
Width = Application.GetRealWidth (640 - 200),
|
Height = Application.GetRealHeight (80),
|
X = btnMinBrightness.Right,
|
};
|
MianSeekBarView.AddChidren (tempSeekBarFrame);
|
var horizontalSeekBar = new HorizontalSeekBar () {
|
ThumbColor = SkinStyle.Current.ThumbColor
|
};
|
tempSeekBarFrame.AddChidren (horizontalSeekBar);
|
|
Button btnMaxBrightness = new Button () {
|
Width = Application.GetRealWidth (100),
|
Height = Application.GetRealHeight (80),
|
X = tempSeekBarFrame.Right + Application.GetRealWidth (10),
|
Text = lightMixDimming.CurrentBrightness + "%",
|
TextAlignment = TextAlignment.CenterLeft,
|
TextColor = SkinStyle.Current.TextColor1
|
};
|
MianSeekBarView.AddChidren (btnMaxBrightness);
|
|
byte switchLighting = 0;
|
if (lightMixDimming.CurrentBrightness > 0) {
|
btnSwitch.TextID = R.MyInternationalizationString.ON;
|
switchLighting = 0;
|
btnSwitch.IsSelected = true;
|
} else {
|
btnSwitch.TextID = R.MyInternationalizationString.OFF;
|
switchLighting = 100;
|
btnSwitch.IsSelected = false;
|
}
|
btnSwitch.MouseUpEventHandler += (sender, e) => {
|
if (lightMixDimming.CurrentBrightness > 0) {
|
switchLighting = 0;
|
btnMaxBrightness.Text = switchLighting + "%";
|
btnSwitch.TextID = R.MyInternationalizationString.OFF;
|
} else {
|
switchLighting = 100;
|
btnSwitch.TextID = R.MyInternationalizationString.ON;
|
btnMaxBrightness.Text = switchLighting + "%";
|
}
|
|
Control.ControlBytesSend (Command.SetSingleLight, lightMixDimming.SubnetID, lightMixDimming.DeviceID, new byte [] { lightMixDimming.PhysicsLoopID, switchLighting, lightMixDimming.DelayTimeHeight, lightMixDimming.DelayTimeLow });
|
lightMixDimming.CurrentBrightness = switchLighting;
|
IO.FileUtils.SaveEquipmentMessage (lightMixDimming, lightMixDimming.LoopID.ToString ());
|
btnSwitch.IsSelected = !btnSwitch.IsSelected;
|
horizontalSeekBar.Progress = switchLighting;
|
};
|
|
horizontalSeekBar.MouseUpEventHandler += (sender, e) => {
|
Control.ControlBytesSend (Command.SetSingleLight, lightMixDimming.SubnetID,
|
lightMixDimming.DeviceID, new byte [] { lightMixDimming.PhysicsLoopID, (byte)horizontalSeekBar.Progress, lightMixDimming.DelayTimeHeight, lightMixDimming.DelayTimeLow });
|
if (horizontalSeekBar.Progress == 0) {
|
btnSwitch.IsSelected = false;
|
btnSwitch.Text = Language.StringByID (R.MyInternationalizationString.OFF);
|
} else {
|
btnSwitch.IsSelected = true;
|
btnSwitch.Text = Language.StringByID (R.MyInternationalizationString.ON);
|
}
|
btnMaxBrightness.Text = horizontalSeekBar.Progress + "%";
|
};
|
|
btnDimming.MouseUpEventHandler += (sender, e) => {
|
btnDimming.IsSelected = !btnDimming.IsSelected;
|
if (btnDimming.IsSelected) {
|
if (UserConfig.Instance.UnEnableDimmingLight.Contains (lightMixDimming.CommonLoopID)) {
|
UserConfig.Instance.UnEnableDimmingLight.Remove (lightMixDimming.CommonLoopID);
|
}
|
} else {
|
UserConfig.Instance.UnEnableDimmingLight.Add (lightMixDimming.CommonLoopID);
|
}
|
UserConfig.Instance.SaveUserConfig ();
|
IO.FileUtils.SaveEquipmentMessage (lightMixDimming, lightMixDimming.LoopID.ToString ());
|
if (btnDimming.IsSelected) {
|
MianSeekBarView.Height = Application.GetRealHeight (80);
|
} else
|
MianSeekBarView.Height = Application.GetRealHeight (0);
|
};
|
if (!btnDimming.IsSelected) {
|
MianSeekBarView.Height = 0;
|
}
|
|
|
System.Threading.Tasks.Task.Run (() => {
|
lightDimmingBytes = Control.ControlBytesSendHasReturn (Command.ReadDeviceLoopInfo, lightMixDimming.SubnetID, lightMixDimming.DeviceID, new byte [] { lightMixDimming.BigClass, lightMixDimming.MinClass, lightMixDimming.PhysicsLoopID });
|
if (lightDimmingBytes == null) {
|
lightDimmingBytes = new byte [26];
|
} else {
|
Application.RunOnMainThread (() => {
|
horizontalSeekBar.Progress = lightDimmingBytes [25];
|
});
|
}
|
});
|
}
|
}
|
}
|