using Shared.SimpleControl.Phone;
using System;
namespace Shared.SimpleControl.Pad
{
public class SystemCurtainTrietex
{
public SystemCurtainTrietex ()
{
}
///
/// 显示开合帘界面
///
/// The curtain trietex show.
/// Curtain trietex.
/// Curtain device.
public void SystemCurtainTrietexShow (CurtainTrietex curtainTrietex, Common common)
{
SystemMiddle.ThirdScrolView.RemoveAll ();
#region top
EditText textButton = new EditText () {
X = Application.GetRealWidth (40),
Height = Application.GetRealHeight (50),
Width = Application.GetRealWidth (400),
Text = curtainTrietex.Name,
Gravity = Gravity.CenterVertical,
TextAlignment = TextAlignment.CenterLeft,
SelectedBackgroundColor = 0xFF000000,
TextSize = 15,
Enable = false,
};
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, curtainTrietex.SubnetID, curtainTrietex.DeviceID, new byte [] {
curtainTrietex.BigClass,curtainTrietex.MinClass,curtainTrietex.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, curtainTrietex.SubnetID, curtainTrietex.DeviceID, updateBytes);
if (reBytes != null) {
Application.RunOnMainThread (() => {
curtainTrietex.Name = textButton.Text.Trim ();
IO.FileUtils.SaveEquipmentMessage (curtainTrietex, curtainTrietex.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 (700),
Width = LayoutParams.MatchParent,
};
SystemMiddle.ThirdScrolView.AddChidren (frameLayoutBody);
Button btnCheckCurtainTrietexWidth = new Button () {
Width = Application.GetRealHeight (500),
Height = Application.GetRealHeight (60),
X = Application.GetRealWidth (70),
Y = Application.GetRealHeight (60),
Radius = 5,
BorderWidth = 2,
BorderColor = 0xFFDBDDDF,
TextID = R.MyInternationalizationString.CheckCurtianWidth,
TextAlignment = TextAlignment.Center,
};
frameLayoutBody.AddChidren (btnCheckCurtainTrietexWidth);
btnCheckCurtainTrietexWidth.MouseUpEventHandler += (sender, e) => {
Alert alert = new Alert (Language.StringByID (R.MyInternationalizationString.Tip), Language.StringByID (R.MyInternationalizationString.ConfirmCheckCurtianWidth), Language.StringByID (R.MyInternationalizationString.Cancel), Language.StringByID (R.MyInternationalizationString.Confrim));
alert.Show ();
alert.ResultEventHandler += (sender_alert, e_alert) => {
if (e_alert) {
Control.ControlBytesSend (Command.UpdataCurtainModelStutas, curtainTrietex.SubnetID, curtainTrietex.DeviceID, new byte [] { 17, 238 });
}
};
};
Button btnTestText = new Button () {
Width = Application.GetRealWidth (394),
Height = Application.GetRealHeight (64),
X = Application.GetRealWidth (30),
Y = btnCheckCurtainTrietexWidth.Bottom + Application.GetRealHeight (40),
TextID = R.MyInternationalizationString.CurtainTest,
TextAlignment = TextAlignment.CenterLeft
};
frameLayoutBody.AddChidren (btnTestText);
Button btnOpenCurtain = new Button () {
Width = Application.GetMinRealAverage (124),
Height = Application.GetMinRealAverage (124),
X = Application.GetRealWidth (50),
Y = btnTestText.Bottom,
UnSelectedImagePath = "Curtain/CurtainOpen.png",
SelectedImagePath = "Curtain/CurtainOpenSelected.png",
};
frameLayoutBody.AddChidren (btnOpenCurtain);
Button btnStopCurtain = new Button () {
Width = Application.GetMinRealAverage (124),
Height = Application.GetMinRealAverage (124),
X = Application.GetRealWidth ((640 - 124) / 2),
Y = btnOpenCurtain.Y,
UnSelectedImagePath = "Curtain/CurtainTimeOut.png",
SelectedImagePath = "Curtain/CurtainTimeOutSelected.png",
};
frameLayoutBody.AddChidren (btnStopCurtain);
Button btnCloseCurtain = new Button () {
Width = Application.GetMinRealAverage (124),
Height = Application.GetMinRealAverage (124),
X = Application.GetRealWidth (640) - btnOpenCurtain.Right,
Y = btnOpenCurtain.Y,
UnSelectedImagePath = "Curtain/CurtainClose.png",
SelectedImagePath = "Curtain/CurtainCloseSelected.png",
};
frameLayoutBody.AddChidren (btnCloseCurtain);
Button btnOpenLbl = new Button () {
Width = Application.GetRealWidth (124),
Height = Application.GetRealHeight (30),
X = btnOpenCurtain.X,
Y = btnOpenCurtain.Bottom + Application.GetRealHeight (5),
TextID = R.MyInternationalizationString.Open,
TextColor = SkinStyle.Current.TextColor1,
};
frameLayoutBody.AddChidren (btnOpenLbl);
Button btnStopLbl = new Button () {
Width = Application.GetRealWidth (124),
Height = Application.GetRealHeight (30),
X = btnStopCurtain.X,
Y = btnOpenLbl.Y,
TextID = R.MyInternationalizationString.Stop,
TextColor = SkinStyle.Current.TextColor1,
};
frameLayoutBody.AddChidren (btnStopLbl);
Button btnCloseLbl = new Button () {
Width = Application.GetRealWidth (124),
Height = Application.GetRealHeight (30),
X = btnCloseCurtain.X,
Y = btnOpenLbl.Y,
TextID = R.MyInternationalizationString.Close2,
TextColor = SkinStyle.Current.TextColor1,
};
frameLayoutBody.AddChidren (btnCloseLbl);
btnOpenCurtain.MouseUpEventHandler += (sender, e) => {
btnOpenCurtain.IsSelected = true;
btnStopCurtain.IsSelected = false;
btnCloseCurtain.IsSelected = false;
UpdataStatus (curtainTrietex, 1);
};
btnStopCurtain.MouseUpEventHandler += (sender, e) => {
btnStopCurtain.IsSelected = true;
btnCloseCurtain.IsSelected = false;
btnOpenCurtain.IsSelected = false;
UpdataStatus (curtainTrietex, 0);
};
btnCloseCurtain.MouseUpEventHandler += (sender, e) => {
btnCloseCurtain.IsSelected = true;
btnStopCurtain.IsSelected = false;
btnOpenCurtain.IsSelected = false;
UpdataStatus (curtainTrietex, 2);
};
if (curtainTrietex.Status == CurtainStatus.Close) {
btnCloseCurtain.IsSelected = true;
} else if (curtainTrietex.Status == CurtainStatus.Open) {
btnOpenCurtain.IsSelected = true;
} else if (curtainTrietex.Status == CurtainStatus.Stop) {
btnStopCurtain.IsSelected = true;
}
#endregion
}
static void UpdataStatus (CurtainTrietex curtainTrietex, byte status)
{
byte [] usefulBytes = Control.ControlBytesSendHasReturn (Command.UpdataCurtainModelStutas, curtainTrietex.SubnetID, curtainTrietex.DeviceID, new byte [] {
curtainTrietex.LoopID,
status
});
if (usefulBytes == null) {
Application.RunOnMainThread (() => {
new Alert (Language.StringByID (R.MyInternationalizationString.Tip), Language.StringByID (R.MyInternationalizationString.TipEquipmentNotOnline), Language.StringByID (R.MyInternationalizationString.Close)).Show ();
});
} else {
curtainTrietex.Status = (CurtainStatus)status;
IO.FileUtils.SaveEquipmentMessage (curtainTrietex, curtainTrietex.LoopID.ToString ());
}
}
}
}