using System;
|
namespace Shared.SimpleControl.Phone
|
{
|
public class UserFHPage : FrameLayout
|
{
|
/// <summary>
|
/// 当前视图
|
/// </summary>
|
static UserFHPage curView;
|
FrameLayout fhBodyView;
|
FoolHeat fh;
|
Room room;
|
|
Button btnInterior;
|
Button btnFHSwitch;
|
Button btnSetTemperature;
|
Button btnReduceTemperature;
|
Button btnAddTemperature;
|
Button FH_Day;
|
Button FH_Night;
|
Button FH_Common;
|
Button Go_away;
|
Button FH_Auto;
|
Button btnValve;
|
Button text_Valve;
|
static DateTime controlTime = DateTime.MinValue;
|
|
/// <summary>
|
/// 构造函数
|
/// </summary>
|
/// <param name="room">Room.</param>
|
public UserFHPage (FoolHeat fh, Room room)
|
{
|
this.fh = fh;
|
this.room = room;
|
curView = this;
|
BackgroundColor = SkinStyle.Current.MainColor;
|
}
|
/// <summary>
|
/// 更新室内温度-针对面板单一状态更新
|
/// </summary>
|
public static void UpdateIndoorTemp (string updateFalg, byte indoorTemp)
|
{
|
if (curView == null) {
|
return;
|
}
|
if (curView.fh.CommonLoopID != updateFalg) {
|
return;
|
}
|
if (controlTime.AddSeconds (0.8) > DateTime.Now) {
|
return;
|
}
|
Application.RunOnMainThread (() => {
|
var indoorT = indoorTemp;
|
string indoorTstr = Convert.ToString (indoorT, 2);
|
if (indoorT > 128) {
|
indoorTstr = "-" + (indoorT - 128) + "°";
|
} else if (indoorT == 128) {
|
indoorTstr = "--";
|
} else
|
indoorTstr = indoorT.ToString () + "°";
|
curView.btnInterior.Text = indoorTstr;
|
});
|
}
|
|
/// <summary>
|
/// 更新工作温度-针对面板单一状态更新
|
/// </summary>
|
public static void UpdateWorkingTemp (string updateFalg, byte workingTemp)
|
{
|
if (curView == null) {
|
return;
|
}
|
if (curView.fh.CommonLoopID != updateFalg) {
|
return;
|
}
|
if (controlTime.AddSeconds (0.8) > DateTime.Now) {
|
return;
|
}
|
Application.RunOnMainThread (() => {
|
curView.btnSetTemperature.Text = workingTemp + "°";
|
});
|
}
|
|
/// <summary>
|
/// 更新地热开关状态-针对面板单一状态更新
|
/// </summary>
|
public static void UpdatePower(string updateFalg, byte power)
|
{
|
if (curView == null) {
|
return;
|
}
|
if (curView.fh.CommonLoopID != updateFalg) {
|
return;
|
}
|
if (controlTime.AddSeconds (0.8) > DateTime.Now) {
|
return;
|
}
|
Application.RunOnMainThread (() => {
|
if (power == 1) {
|
//考虑到其他人控制的情况下,得使当前界面更新的数据和别人控制的一样
|
curView.btnFHSwitch.IsSelected = true;
|
curView.btnReduceTemperature.Enable = true;
|
curView.btnAddTemperature.Enable = true;
|
curView.FH_Day.Enable = true;
|
curView.FH_Auto.Enable = true;
|
curView.FH_Night.Enable = true;
|
curView.FH_Common.Enable = true;
|
curView.Go_away.Enable = true;
|
} else {
|
curView.btnFHSwitch.IsSelected = false;
|
curView.btnReduceTemperature.Enable = false;
|
curView.btnAddTemperature.Enable = false;
|
curView.FH_Day.Enable = false;
|
curView.FH_Auto.Enable = false;
|
curView.FH_Night.Enable = false;
|
curView.FH_Common.Enable = false;
|
curView.Go_away.Enable = false;
|
}
|
});
|
}
|
|
/// <summary>
|
/// 更新工作模式-针对面板单一状态更新
|
/// </summary>
|
public static void UpdateWorkingMode (string updateFalg, byte temperatureType)
|
{
|
if (curView == null) {
|
return;
|
}
|
if (curView.fh.CommonLoopID != updateFalg) {
|
return;
|
}
|
if (controlTime.AddSeconds (0.8) > DateTime.Now) {
|
return;
|
}
|
Application.RunOnMainThread (() => {
|
switch (temperatureType) {
|
case 1:
|
curView.FH_Day.IsSelected = false;
|
curView.FH_Auto.IsSelected = false;
|
curView.FH_Night.IsSelected = false;
|
curView.FH_Common.IsSelected = true;
|
curView.Go_away.IsSelected = false;
|
break;
|
case 2:
|
curView.FH_Day.IsSelected = true;
|
curView.FH_Auto.IsSelected = false;
|
curView.FH_Night.IsSelected = false;
|
curView.FH_Common.IsSelected = false;
|
curView.Go_away.IsSelected = false;
|
break;
|
case 3:
|
curView.FH_Day.IsSelected = false;
|
curView.FH_Auto.IsSelected = false;
|
curView.FH_Night.IsSelected = true;
|
curView.FH_Common.IsSelected = false;
|
curView.Go_away.IsSelected = false;
|
break;
|
case 4:
|
curView.FH_Day.IsSelected = false;
|
curView.FH_Auto.IsSelected = false;
|
curView.FH_Night.IsSelected = false;
|
curView.FH_Common.IsSelected = false;
|
curView.Go_away.IsSelected = true;
|
break;
|
case 5:
|
curView.FH_Day.IsSelected = false;
|
curView.FH_Auto.IsSelected = true;
|
curView.FH_Night.IsSelected = false;
|
curView.FH_Common.IsSelected = false;
|
curView.Go_away.IsSelected = false;
|
break;
|
}
|
});
|
}
|
|
/// <summary>
|
/// 更新地热
|
/// </summary>
|
public static void UpdateStatus (FoolHeat updataFH, byte loopId)
|
{
|
if (curView == null) {
|
return;
|
}
|
if (curView.fh.LoopID != loopId)
|
return;
|
if (curView.fh.SubnetID != updataFH.SubnetID && curView.fh.DeviceID != updataFH.DeviceID) {
|
return;
|
}
|
if (controlTime.AddSeconds (0.8) > DateTime.Now) {
|
return;
|
}
|
Application.RunOnMainThread (() => {
|
try {
|
var indoorT = updataFH.IndoorTemperature;
|
string indoorTstr = Convert.ToString (indoorT, 2);
|
if (indoorT > 128) {
|
indoorTstr = "-" + (indoorT - 128) + "°";
|
} else if (indoorT == 128) {
|
indoorTstr = "--";
|
} else
|
indoorTstr = indoorT.ToString () + "°";
|
curView.btnInterior.Text = indoorTstr;
|
curView.btnSetTemperature.Text = updataFH.WorkingTemperature.ToString () + "°";
|
if (updataFH.Status == 1) {
|
//考虑到其他人控制的情况下,得使当前界面更新的数据和别人控制的一样
|
curView.btnFHSwitch.IsSelected = true;
|
curView.btnReduceTemperature.Enable = true;
|
curView.btnAddTemperature.Enable = true;
|
curView.FH_Day.Enable = true;
|
curView.FH_Auto.Enable = true;
|
curView.FH_Night.Enable = true;
|
curView.FH_Common.Enable = true;
|
curView.Go_away.Enable = true;
|
} else {
|
curView.btnFHSwitch.IsSelected = false;
|
curView.btnReduceTemperature.Enable = false;
|
curView.btnAddTemperature.Enable = false;
|
curView.FH_Day.Enable = false;
|
curView.FH_Auto.Enable = false;
|
curView.FH_Night.Enable = false;
|
curView.FH_Common.Enable = false;
|
curView.Go_away.Enable = false;
|
}
|
switch (updataFH.TemperatureType) {
|
case 1:
|
curView.FH_Day.IsSelected = false;
|
curView.FH_Auto.IsSelected = false;
|
curView.FH_Night.IsSelected = false;
|
curView.FH_Common.IsSelected = true;
|
curView.Go_away.IsSelected = false;
|
break;
|
case 2:
|
curView.FH_Day.IsSelected = true;
|
curView.FH_Auto.IsSelected = false;
|
curView.FH_Night.IsSelected = false;
|
curView.FH_Common.IsSelected = false;
|
curView.Go_away.IsSelected = false;
|
break;
|
case 3:
|
curView.FH_Day.IsSelected = false;
|
curView.FH_Auto.IsSelected = false;
|
curView.FH_Night.IsSelected = true;
|
curView.FH_Common.IsSelected = false;
|
curView.Go_away.IsSelected = false;
|
break;
|
case 4:
|
curView.FH_Day.IsSelected = false;
|
curView.FH_Auto.IsSelected = false;
|
curView.FH_Night.IsSelected = false;
|
curView.FH_Common.IsSelected = false;
|
curView.Go_away.IsSelected = true;
|
break;
|
case 5:
|
curView.FH_Day.IsSelected = false;
|
curView.FH_Auto.IsSelected = true;
|
curView.FH_Night.IsSelected = false;
|
curView.FH_Common.IsSelected = false;
|
curView.Go_away.IsSelected = false;
|
break;
|
}
|
|
if (updataFH.PWDStatus == 0)//Close
|
{
|
curView.btnValve.Text = Language.StringByID (R.MyInternationalizationString.ValveStatus).Replace ("--", Language.StringByID (R.MyInternationalizationString.Close));
|
curView.text_Valve.Text = Language.StringByID (R.MyInternationalizationString.CurrentValue).Replace ("--", updataFH.PWDValue.ToString ());
|
} else {
|
curView.btnValve.Text = Language.StringByID (R.MyInternationalizationString.ValveStatus).Replace ("--", Language.StringByID (R.MyInternationalizationString.Open));
|
curView.text_Valve.Text = Language.StringByID (R.MyInternationalizationString.CurrentValue).Replace ("--", updataFH.PWDValue.ToString ());
|
}
|
} catch (Exception ex) {
|
Console.WriteLine ("UserACPage " + ex.ToString ());
|
}
|
});
|
}
|
|
/// <summary>
|
/// 显示出当前房间所有的地热
|
/// </summary>
|
public void ShowRoomFH ()
|
{
|
#region 标题
|
var topView = new FrameLayout () {
|
Y = Application.GetRealHeight (36),
|
Width = Application.GetRealWidth (640),
|
Height = Application.GetRealHeight (90),
|
};
|
AddChidren (topView);
|
|
var title = new Button () {
|
TextAlignment = TextAlignment.Center,
|
Text = fh.Name,
|
TextSize = 19,
|
TextColor = SkinStyle.Current.TextColor1
|
};
|
topView.AddChidren (title);
|
|
var logo = new Button () {
|
Width = Application.GetRealWidth (154),
|
Height = Application.GetRealHeight (90),
|
X = Application.GetRealWidth (486),
|
UnSelectedImagePath = MainPage.LogoString,
|
};
|
topView.AddChidren (logo);
|
var back = new Button () {
|
Height = Application.GetRealHeight (90),
|
Width = Application.GetRealWidth (85),
|
UnSelectedImagePath = "Item/Back.png",
|
SelectedImagePath = "Item/BackSelected.png",
|
};
|
topView.AddChidren (back);
|
back.MouseUpEventHandler += (sender, e) => {
|
(Parent as PageLayout).PageIndex -= 1;
|
try {
|
curView = null;
|
} catch {
|
base.RemoveFromParent ();
|
}
|
};
|
#endregion
|
fhBodyView = new FrameLayout {
|
Height = Application.GetRealHeight (Application.DesignHeight - 126),
|
Width = Application.GetRealWidth (640),
|
Y = Application.GetRealHeight (126),
|
};
|
AddChidren (fhBodyView);
|
|
#region roomBackgroundImageView
|
var roomBackgroundImageView = new FrameLayout () {
|
Width = Application.GetRealWidth (640),
|
Height = MainPage.GetDesignHeight (360),
|
};
|
fhBodyView.AddChidren (roomBackgroundImageView);
|
roomBackgroundImageView.BackgroundImagePath = room.BackGroundImage;
|
//长按更换背景
|
#if wallon
|
#else
|
roomBackgroundImageView.MouseLongEventHandler += (sender, e) => {
|
Camera.SelectPicture ((obj) => {
|
if (obj != null) {
|
room.BackGroundImage = obj;
|
roomBackgroundImageView.BackgroundImagePath = obj;
|
room.Save (typeof (Room).Name + "_" + room.Name);
|
}
|
}, room.Name, false);
|
};
|
#endif
|
#endregion
|
#region 工作模式,开关按钮
|
FrameLayout WrokView = new FrameLayout () {
|
Height = Application.GetMinRealAverage (116),
|
Width = Application.GetRealWidth(640),
|
BackgroundColor = SkinStyle.Current.MainColor,
|
Y = Application.GetMinRealAverage (360),
|
};
|
fhBodyView.AddChidren (WrokView);
|
var FH_Heat = new Button () {
|
Width = Application.GetMinRealAverage (120),
|
Height = Application.GetMinRealAverage (120),
|
X = Application.GetRealWidth (35),
|
UnSelectedImagePath = "FH/FH_Heat_on.png",
|
SelectedImagePath = "FH/FH_Cold_on.png",
|
};
|
if (fh.WorkingMode == 0) {
|
FH_Heat.IsSelected = false;
|
} else {
|
FH_Heat.IsSelected = true;
|
}
|
FH_Heat.MouseUpEventHandler += (sender, e) => {
|
if (FH_Heat.IsSelected == false) {
|
FH_Heat.IsSelected = true;
|
fh.WorkingMode = 1;
|
} else {
|
FH_Heat.IsSelected = false;
|
fh.WorkingMode = 0;
|
}
|
if (controlTime.AddSeconds (0.8) > DateTime.Now) {
|
controlTime = DateTime.Now;
|
return;
|
}
|
controlTime = DateTime.Now;
|
Console.WriteLine ("controlTime reset");
|
System.Threading.Tasks.Task.Run (() => {
|
while (controlTime.AddSeconds (0.8) > DateTime.Now) {
|
System.Threading.Thread.Sleep (800);
|
Console.WriteLine ("sleep 800");
|
}
|
if (fh.Type == DeviceType.FoolHeatPanel) {
|
//Control.ControlBytesSend (Command.InstructionPanelKey, fh.SubnetID, fh.DeviceID, new byte [] { 20, fh.Status, fh.LoopID });
|
} else if (fh.Type == DeviceType.FoolHeat) {
|
fh = fh.Serverx_FH_CMD (FoolHeat.CommandType.WorkMode);
|
}
|
});
|
};
|
if (fh.Type == DeviceType.FoolHeat) {
|
WrokView.AddChidren (FH_Heat);
|
}
|
btnFHSwitch = new Button () {
|
Width = Application.GetMinRealAverage (115),
|
Height = Application.GetMinRealAverage (115),
|
X = Application.GetRealWidth (640 - 152),
|
UnSelectedImagePath = "FH/FH_Switch.png",
|
SelectedImagePath = "FH/FH_Switch_on.png",
|
};
|
if (fh.Status == 1) {
|
btnFHSwitch.IsSelected = true;
|
} else {
|
btnFHSwitch.IsSelected = false;
|
}
|
btnFHSwitch.MouseUpEventHandler += (sender, e) => {
|
if (btnFHSwitch.IsSelected == false) {
|
btnFHSwitch.IsSelected = true;
|
fh.Status = 1;
|
btnSetTemperature.Text = fh.WorkingTemperature.ToString () + "°";
|
btnInterior.Text = fh.IndoorTemperature.ToString () + "°";
|
btnReduceTemperature.Enable = true;
|
btnAddTemperature.Enable = true;
|
FH_Day.Enable = true;
|
FH_Night.Enable = true;
|
FH_Common.Enable = true;
|
Go_away.Enable = true;
|
FH_Auto.Enable = true;
|
} else {
|
btnFHSwitch.IsSelected = false;
|
fh.Status = 0;
|
btnSetTemperature.Text = fh.WorkingTemperature.ToString () + "°";
|
btnInterior.Text = fh.IndoorTemperature.ToString () + "°";
|
btnReduceTemperature.Enable = false;
|
btnAddTemperature.Enable = false;
|
FH_Day.Enable = false;
|
FH_Night.Enable = false;
|
FH_Common.Enable = false;
|
Go_away.Enable = false;
|
FH_Auto.Enable = false;
|
}
|
if (controlTime.AddSeconds (0.8) > DateTime.Now) {
|
controlTime = DateTime.Now;
|
return;
|
}
|
controlTime = DateTime.Now;
|
Console.WriteLine ("controlTime reset");
|
System.Threading.Tasks.Task.Run (() => {
|
while (controlTime.AddSeconds (0.8) > DateTime.Now) {
|
System.Threading.Thread.Sleep (800);
|
Console.WriteLine ("sleep 800");
|
}
|
if (fh.Type == DeviceType.FoolHeatPanel) {
|
Control.ControlBytesSend (Command.InstructionPanelKey, fh.SubnetID, fh.DeviceID, new byte [] { 20, fh.Status, fh.LoopID });
|
} else if (fh.Type == DeviceType.FoolHeat) {
|
fh = fh.Serverx_FH_CMD (FoolHeat.CommandType.Switch);
|
}
|
});
|
};
|
WrokView.AddChidren (btnFHSwitch);
|
|
Button btnText = new Button () {
|
Width = Application.GetRealWidth (150),
|
Height = Application.GetRealHeight (40),
|
Gravity = Gravity.CenterHorizontal,
|
Y = Application.GetRealHeight (10),
|
TextID = R.MyInternationalizationString.ACInterior,
|
TextColor = SkinStyle.Current.TextColor1
|
};
|
WrokView.AddChidren (btnText);
|
var indoorT = fh.IndoorTemperature;
|
string indoorTstr = Convert.ToString (indoorT, 2);
|
if (indoorT > 127) {
|
indoorTstr = "-" + (indoorT - 128) + "°";
|
} else
|
indoorTstr = indoorT.ToString();
|
btnInterior = new Button () {
|
Width = Application.GetRealWidth (150),
|
Height = Application.GetRealHeight (80),
|
Gravity = Gravity.CenterHorizontal,
|
Y = Application.GetRealHeight (30),
|
Text = indoorTstr + "°",
|
TextSize = 15,
|
TextAlignment = TextAlignment.Center,
|
TextColor = SkinStyle.Current.TextColor1
|
};
|
WrokView.AddChidren (btnInterior);
|
#endregion
|
#region 温度
|
FrameLayout fhTemperatureView = new FrameLayout () {
|
Height = Application.GetRealHeight (550 / 3 - 40),
|
Width = LayoutParams.MatchParent,
|
BackgroundColor = SkinStyle.Current.ViewColor,
|
Y = WrokView.Bottom,
|
};
|
fhBodyView.AddChidren (fhTemperatureView);
|
var btnLine1 = new Button () {
|
Height = 1,
|
BackgroundColor = SkinStyle.Current.Black50Transparent,
|
Y = fhTemperatureView.Height - 2,
|
};
|
fhTemperatureView.AddChidren (btnLine1);
|
|
btnSetTemperature = new Button () {
|
Width = Application.GetRealWidth (310),
|
X = Application.GetRealWidth ((640 - 310) / 2),
|
Text = fh.WorkingTemperature.ToString () + "°",
|
TextAlignment = TextAlignment.Center,
|
Enable = false,
|
TextSize = 21,
|
TextColor = SkinStyle.Current.TextColor1
|
};
|
fhTemperatureView.AddChidren (btnSetTemperature);
|
|
btnReduceTemperature = new Button (){
|
Width = Application.GetMinRealAverage (129),
|
Height = Application.GetMinRealAverage (129),
|
X = Application.GetRealWidth (30),
|
Gravity = Gravity.CenterVertical,
|
UnSelectedImagePath = "AC/ac-1.png",
|
SelectedImagePath = "AC/ac_on-.png",
|
};
|
fhTemperatureView.AddChidren (btnReduceTemperature);
|
btnReduceTemperature.MouseDownEventHandler += (sender, e) => {
|
btnReduceTemperature.IsSelected = true;
|
};
|
btnReduceTemperature.MouseUpEventHandler += (sender, e) => {
|
if (fh.TemperatureType == 5)//时间模式不容许修改温度
|
return;
|
btnReduceTemperature.IsSelected = false;
|
if (--fh.WorkingTemperature <= 5) {
|
return;
|
} else {
|
switch (fh.TemperatureType) {
|
case 1:
|
fh.NormalTemperature = fh.WorkingTemperature;
|
break;
|
case 2:
|
fh.DayTemperature = fh.WorkingTemperature;
|
break;
|
case 3:
|
fh.NightTemperature = fh.WorkingTemperature;
|
break;
|
case 4:
|
fh.AwayTemperature = fh.WorkingTemperature;
|
break;
|
}
|
}
|
|
btnSetTemperature.Text = fh.WorkingTemperature.ToString () + "°";
|
btnInterior.Text = fh.IndoorTemperature.ToString () + "°";
|
|
if (controlTime.AddSeconds (0.8) > DateTime.Now) {
|
controlTime = DateTime.Now;
|
return;
|
}
|
controlTime = DateTime.Now;
|
Console.WriteLine ("controlTime reset");
|
System.Threading.Tasks.Task.Run (() => {
|
while (controlTime.AddSeconds (0.8) > DateTime.Now) {
|
System.Threading.Thread.Sleep (800);
|
Console.WriteLine ("sleep 800");
|
}
|
if (fh.Type == DeviceType.FoolHeatPanel) {
|
switch (fh.TemperatureType) {
|
case 1:
|
Control.ControlBytesSend (Command.InstructionPanelKey, fh.SubnetID, fh.DeviceID, new byte [] { 25, fh.WorkingTemperature, fh.LoopID });
|
break;
|
case 2:
|
Control.ControlBytesSend (Command.InstructionPanelKey, fh.SubnetID, fh.DeviceID, new byte [] { 26, fh.WorkingTemperature, fh.LoopID });
|
break;
|
case 3:
|
Control.ControlBytesSend (Command.InstructionPanelKey, fh.SubnetID, fh.DeviceID, new byte [] { 27, fh.WorkingTemperature, fh.LoopID });
|
break;
|
case 4:
|
Control.ControlBytesSend (Command.InstructionPanelKey, fh.SubnetID, fh.DeviceID, new byte [] { 28, fh.WorkingTemperature, fh.LoopID });
|
break;
|
default:
|
break;
|
}
|
} else if (fh.Type == DeviceType.FoolHeat) {
|
fh = fh.Serverx_FH_CMD (FoolHeat.CommandType.Temperatrue);
|
}
|
});
|
};
|
|
btnAddTemperature = new Button () {
|
Width = Application.GetMinRealAverage (129),
|
Height = Application.GetMinRealAverage (129),
|
X = Application.GetRealWidth (640 - 129 - 30),
|
Gravity = Gravity.CenterVertical,
|
UnSelectedImagePath = "AC/ac+1.png",
|
SelectedImagePath = "AC/ac_on+.png",
|
};
|
fhTemperatureView.AddChidren (btnAddTemperature);
|
btnAddTemperature.MouseDownEventHandler += (sender, e) => {
|
btnAddTemperature.IsSelected = true;
|
};
|
btnAddTemperature.MouseUpEventHandler += (sender, e) => {
|
if (fh.TemperatureType == 5)//时间模式不容许修改温度
|
return;
|
btnAddTemperature.IsSelected = false;
|
|
if (++fh.WorkingTemperature > 128) {
|
return;
|
} else {
|
switch (fh.TemperatureType) {
|
case 1:
|
fh.NormalTemperature = fh.WorkingTemperature;
|
break;
|
case 2:
|
fh.DayTemperature = fh.WorkingTemperature;
|
break;
|
case 3:
|
fh.NightTemperature = fh.WorkingTemperature;
|
break;
|
case 4:
|
fh.AwayTemperature = fh.WorkingTemperature;
|
break;
|
}
|
}
|
btnSetTemperature.Text = fh.WorkingTemperature.ToString () + "°";
|
btnInterior.Text = fh.IndoorTemperature.ToString () + "°";
|
|
if (controlTime.AddSeconds (0.8) > DateTime.Now) {
|
controlTime = DateTime.Now;
|
return;
|
}
|
controlTime = DateTime.Now;
|
Console.WriteLine ("controlTime reset");
|
System.Threading.Tasks.Task.Run (() => {
|
while (controlTime.AddSeconds (0.8) > DateTime.Now) {
|
System.Threading.Thread.Sleep (800);
|
Console.WriteLine ("sleep 800");
|
}
|
if (fh.Type == DeviceType.FoolHeatPanel) {
|
switch (fh.TemperatureType) {
|
case 1:
|
Control.ControlBytesSend (Command.InstructionPanelKey, fh.SubnetID, fh.DeviceID, new byte [] { 25, fh.WorkingTemperature, fh.LoopID });
|
break;
|
case 2:
|
Control.ControlBytesSend (Command.InstructionPanelKey, fh.SubnetID, fh.DeviceID, new byte [] { 26, fh.WorkingTemperature, fh.LoopID });
|
break;
|
case 3:
|
Control.ControlBytesSend (Command.InstructionPanelKey, fh.SubnetID, fh.DeviceID, new byte [] { 27, fh.WorkingTemperature, fh.LoopID });
|
break;
|
case 4:
|
Control.ControlBytesSend (Command.InstructionPanelKey, fh.SubnetID, fh.DeviceID, new byte [] { 28, fh.WorkingTemperature, fh.LoopID });
|
break;
|
default:
|
break;
|
}
|
} else if (fh.Type == DeviceType.FoolHeat) {
|
fh = fh.Serverx_FH_CMD (FoolHeat.CommandType.Temperatrue);
|
}
|
});
|
};
|
|
Button btnTeNull = new Button () {
|
Y = fhTemperatureView.Height -1,
|
Height =1,
|
BackgroundColor = SkinStyle.Current.White20Transparent
|
};
|
fhTemperatureView.AddChidren (btnTeNull);
|
|
#endregion
|
|
#region FHTemperatrueTypeView
|
var FHTemperatrueTypeView = new FrameLayout () {
|
Height = Application.GetRealHeight (Application.DesignHeight - 126 - 360 - 150 -106),
|
Y = fhTemperatureView.Bottom,
|
BackgroundColor = SkinStyle.Current.ViewColor
|
};
|
fhBodyView.AddChidren (FHTemperatrueTypeView);
|
|
FH_Day = new Button () {
|
Width = Application.GetMinRealAverage (140),
|
Height = Application.GetMinRealAverage (140),
|
X = Application.GetRealWidth (30),
|
Y = Application.GetRealHeight (10),
|
UnSelectedImagePath = "FH/FH_Day.png",
|
SelectedImagePath = "FH/FH_Day_on.png",
|
// Enable = false,
|
};
|
if (fh.TemperatureType == 2) {
|
FH_Day.IsSelected = true;
|
} else {
|
FH_Day.IsSelected = false;
|
}
|
FHTemperatrueTypeView.AddChidren (FH_Day);
|
|
Button text_FH_Day = new Button () {
|
Width = Application.GetRealWidth (140),
|
Height = Application.GetRealHeight (40),
|
X = FH_Day.X,
|
Y = FH_Day.Bottom - Application.GetRealHeight (30),
|
TextID = R.MyInternationalizationString.Day,
|
TextColor = SkinStyle.Current.TextColor1,
|
};
|
FHTemperatrueTypeView.AddChidren (text_FH_Day);
|
|
FH_Night = new Button () {
|
Width = Application.GetMinRealAverage (140),
|
Height = Application.GetMinRealAverage (140),
|
X = Application.GetRealWidth (640 - 140 -30),
|
Y = FH_Day.Y,
|
UnSelectedImagePath = "FH/FH_Night.png",
|
SelectedImagePath = "FH/FH_Night_on.png",
|
//Enable =false ,
|
};
|
if (fh.TemperatureType == 3) {
|
FH_Night.IsSelected = true;
|
} else {
|
FH_Night.IsSelected = false;
|
}
|
FHTemperatrueTypeView.AddChidren (FH_Night);
|
|
if (fh.Type == DeviceType.FoolHeat) {
|
btnValve = new Button () {
|
Width = Application.GetMinRealAverage (200),
|
Height = Application.GetMinRealAverage (50),
|
Gravity = Gravity.CenterHorizontal,
|
Y = Application.GetRealHeight (40),
|
TextID = R.MyInternationalizationString.ValveStatus,
|
TextColor = SkinStyle.Current.TextColor1
|
};
|
FHTemperatrueTypeView.AddChidren (btnValve);
|
text_Valve = new Button () {
|
Width = Application.GetRealWidth (200),
|
Height = Application.GetRealHeight (50),
|
X = btnValve.X,
|
Y = btnValve.Bottom,
|
TextID = R.MyInternationalizationString.CurrentValue,
|
TextColor = SkinStyle.Current.TextColor1,
|
};
|
FHTemperatrueTypeView.AddChidren (text_Valve);
|
|
if (fh.PWDStatus == 0)//Close
|
{
|
btnValve.Text = Language.StringByID (R.MyInternationalizationString.ValveStatus).Replace ("--", Language.StringByID (R.MyInternationalizationString.Close));
|
text_Valve.Text = Language.StringByID (R.MyInternationalizationString.CurrentValue).Replace ("--", fh.PWDValue.ToString ());
|
} else {
|
btnValve.Text = Language.StringByID (R.MyInternationalizationString.ValveStatus).Replace ("--", Language.StringByID (R.MyInternationalizationString.Open));
|
text_Valve.Text = Language.StringByID (R.MyInternationalizationString.CurrentValue).Replace ("--", fh.PWDValue.ToString ());
|
}
|
}
|
Button text_FH_Night = new Button () {
|
Width = Application.GetRealWidth (140),
|
Height = Application.GetRealHeight (40),
|
X = FH_Night.X,
|
Y = FH_Night.Bottom - Application.GetRealHeight (30),
|
TextID = R.MyInternationalizationString.AtNight,
|
TextColor = SkinStyle.Current.TextColor1,
|
};
|
FHTemperatrueTypeView.AddChidren (text_FH_Night);
|
|
FH_Common = new Button () {
|
Width = Application.GetMinRealAverage (140),
|
Height = Application.GetMinRealAverage (140),
|
X = Application.GetRealWidth (30),
|
Y = FH_Day.Bottom + Application.GetRealHeight (30),
|
UnSelectedImagePath = "FH/FH_Common.png",
|
SelectedImagePath = "FH/FH_Common_on.png",
|
// Enable = false,
|
};
|
if (fh.TemperatureType == 1) {
|
FH_Common.IsSelected = true;
|
} else {
|
FH_Common.IsSelected = false;
|
}
|
FHTemperatrueTypeView.AddChidren (FH_Common);
|
Button text_FH_Common = new Button () {
|
Width = Application.GetRealWidth (140),
|
Height = Application.GetRealHeight (40),
|
X = FH_Common.X,
|
Y = FH_Common.Bottom - Application.GetRealHeight (30),
|
TextID = R.MyInternationalizationString.Ordinary,
|
TextColor = SkinStyle.Current.TextColor1,
|
};
|
FHTemperatrueTypeView.AddChidren (text_FH_Common);
|
|
Go_away = new Button () {
|
Width = Application.GetMinRealAverage (140),
|
Height = Application.GetMinRealAverage (140),
|
Gravity = Gravity.CenterHorizontal,
|
Y = FH_Day.Bottom + Application.GetRealHeight (30),
|
UnSelectedImagePath = "FH/FH_Leave.png",
|
SelectedImagePath = "FH/FH_Leave_on.png",
|
// Enable = false,
|
};
|
if (fh.TemperatureType == 4) {
|
Go_away.IsSelected = true;
|
} else {
|
Go_away.IsSelected = false;
|
}
|
FHTemperatrueTypeView.AddChidren (Go_away);
|
Button text_Go_away = new Button () {
|
Width = Application.GetRealWidth (140),
|
Height = Application.GetRealHeight (40),
|
X = Go_away.X,
|
Y = Go_away.Bottom - Application.GetRealHeight (30),
|
TextID = R.MyInternationalizationString.GoAway,
|
TextColor = SkinStyle.Current.TextColor1,
|
};
|
FHTemperatrueTypeView.AddChidren (text_Go_away);
|
|
FH_Auto = new Button () {
|
Width = Application.GetMinRealAverage (140),
|
Height = Application.GetMinRealAverage (140),
|
X = Application.GetRealWidth (640 - 140 - 30),
|
Y = FH_Day.Bottom + Application.GetRealHeight (30),
|
UnSelectedImagePath = "FH/FH_Auto.png",
|
SelectedImagePath = "FH/FH_Auto_on.png",
|
// Enable = false,
|
};
|
if (fh.TemperatureType == 5) {
|
FH_Auto.IsSelected = true;
|
} else {
|
FH_Auto.IsSelected = false;
|
}
|
FHTemperatrueTypeView.AddChidren (FH_Auto);
|
Button text_FH_Auto = new Button () {
|
Width = Application.GetRealWidth (140),
|
Height = Application.GetRealHeight (40),
|
X = FH_Auto.X,
|
Y = FH_Auto.Bottom - Application.GetRealHeight (30),
|
TextID = R.MyInternationalizationString.Timer,
|
TextColor = SkinStyle.Current.TextColor1,
|
};
|
FHTemperatrueTypeView.AddChidren (text_FH_Auto);
|
|
FH_Day.MouseDownEventHandler += (sender, e) => {
|
if (btnFHSwitch.IsSelected == false) {
|
return;
|
}
|
FH_Day.IsSelected = true;
|
};
|
FH_Day.MouseUpEventHandler += (sender, e) => {
|
if (btnFHSwitch.IsSelected == false) {
|
return;
|
}
|
FH_Day.IsSelected = true;
|
FH_Common.IsSelected = false;
|
FH_Night.IsSelected = false;
|
FH_Auto.IsSelected = false;
|
Go_away.IsSelected = false;
|
fh.TemperatureType = 2;
|
System.Threading.Tasks.Task.Run (() => {
|
if (fh.Type == DeviceType.FoolHeatPanel) {
|
Control.ControlBytesSend (Command.InstructionPanelKey, fh.SubnetID, fh.DeviceID, new byte [] { 21, fh.TemperatureType, fh.LoopID });
|
Control.ControlBytesSend (Command.InstructionPanelKey, fh.SubnetID, fh.DeviceID, new byte [] { 26, fh.LoopID, fh.LoopID });
|
} else if (fh.Type == DeviceType.FoolHeat) {
|
fh = fh.Serverx_FH_CMD (FoolHeat.CommandType.TemperatrueMode);
|
}
|
Application.RunOnMainThread (() => {
|
btnSetTemperature.Text = fh.WorkingTemperature + "°";
|
});
|
});
|
};
|
|
FH_Night.MouseDownEventHandler += (sender, e) => {
|
if (btnFHSwitch.IsSelected == false) {
|
return;
|
}
|
FH_Night.IsSelected = true;
|
};
|
FH_Night.MouseUpEventHandler += (sender, e) => {
|
if (btnFHSwitch.IsSelected == false) {
|
return;
|
}
|
FH_Common.IsSelected = false;
|
FH_Night.IsSelected = true;
|
FH_Auto.IsSelected = false;
|
FH_Day.IsSelected = false;
|
Go_away.IsSelected = false;
|
fh.TemperatureType = 3;
|
System.Threading.Tasks.Task.Run (() => {
|
if (fh.Type == DeviceType.FoolHeatPanel) {
|
Control.ControlBytesSend (Command.InstructionPanelKey, fh.SubnetID, fh.DeviceID, new byte [] { 21, fh.TemperatureType, fh.LoopID });
|
} else if (fh.Type == DeviceType.FoolHeat) {
|
fh = fh.Serverx_FH_CMD (FoolHeat.CommandType.TemperatrueMode);
|
}
|
Application.RunOnMainThread (() => {
|
btnSetTemperature.Text = fh.WorkingTemperature + "°";
|
});
|
});
|
|
};
|
Go_away.MouseDownEventHandler += (sender, e) => {
|
if (btnFHSwitch.IsSelected == false) {
|
return;
|
}
|
Go_away.IsSelected = true;
|
};
|
Go_away.MouseUpEventHandler += (sender, e) => {
|
if (btnFHSwitch.IsSelected == false) {
|
return;
|
}
|
FH_Common.IsSelected = false;
|
Go_away.IsSelected = true;
|
FH_Night.IsSelected = false;
|
FH_Day.IsSelected = false;
|
FH_Auto.IsSelected = false;
|
fh.TemperatureType = 4;
|
System.Threading.Tasks.Task.Run (() => {
|
if (fh.Type == DeviceType.FoolHeatPanel) {
|
Control.ControlBytesSend (Command.InstructionPanelKey, fh.SubnetID, fh.DeviceID, new byte [] { 21, fh.TemperatureType, fh.LoopID });
|
} else if (fh.Type == DeviceType.FoolHeat) {
|
fh = fh.Serverx_FH_CMD (FoolHeat.CommandType.TemperatrueMode);
|
}
|
Application.RunOnMainThread (() => {
|
btnSetTemperature.Text = fh.WorkingTemperature + "°";
|
});
|
});
|
|
|
};
|
FH_Common.MouseDownEventHandler += (sender, e) => {
|
if (btnFHSwitch.IsSelected == false) {
|
return;
|
}
|
FH_Common.IsSelected = true;
|
};
|
FH_Common.MouseUpEventHandler += (sender, e) => {
|
if (btnFHSwitch.IsSelected == false) {
|
return;
|
}
|
FH_Auto.IsSelected = false;
|
FH_Common.IsSelected = true;
|
FH_Night.IsSelected = false;
|
FH_Day.IsSelected = false;
|
Go_away.IsSelected = false;
|
fh.TemperatureType = 1;
|
System.Threading.Tasks.Task.Run (() => {
|
if (fh.Type == DeviceType.FoolHeatPanel) {
|
Control.ControlBytesSend (Command.InstructionPanelKey, fh.SubnetID, fh.DeviceID, new byte [] { 21, fh.TemperatureType, fh.LoopID });
|
} else if (fh.Type == DeviceType.FoolHeat) {
|
fh = fh.Serverx_FH_CMD (FoolHeat.CommandType.TemperatrueMode);
|
}
|
Application.RunOnMainThread (() => {
|
btnSetTemperature.Text = fh.WorkingTemperature + "°";
|
});
|
});
|
};
|
FH_Auto.MouseDownEventHandler += (sender, e) => {
|
if (btnFHSwitch.IsSelected == false) {
|
return;
|
}
|
FH_Auto.IsSelected = true;
|
};
|
FH_Auto.MouseUpEventHandler += (sender, e) => {
|
if (btnFHSwitch.IsSelected == false) {
|
return;
|
}
|
FH_Common.IsSelected = false;
|
FH_Night.IsSelected = false;
|
FH_Day.IsSelected = false;
|
Go_away.IsSelected = false;
|
FH_Auto.IsSelected = true;
|
fh.TemperatureType = 5;
|
System.Threading.Tasks.Task.Run (() => {
|
if (fh.Type == DeviceType.FoolHeatPanel) {
|
Control.ControlBytesSend (Command.InstructionPanelKey, fh.SubnetID, fh.DeviceID, new byte [] { 21, 5, fh.LoopID });
|
} else if (fh.Type == DeviceType.FoolHeat) {
|
fh = fh.Serverx_FH_CMD (FoolHeat.CommandType.TemperatrueMode);
|
}
|
Application.RunOnMainThread (() => {
|
btnSetTemperature.Text = fh.WorkingTemperature + "°";
|
});
|
});
|
};
|
#endregion
|
|
readStatus ();
|
}
|
|
/// <summary>
|
/// 读取设备状态
|
/// </summary>
|
void readStatus ()
|
{
|
System.Threading.Tasks.Task.Run (() => {
|
#if DEBUG
|
#else
|
if (fh.LastUpdateTime.AddMinutes (Common.Time) <= DateTime.Now) {
|
#endif
|
if (fh.Type == DeviceType.FoolHeatPanel) {
|
readFoolHeatPanelStatus ();
|
} else if (fh.Type == DeviceType.FoolHeat) {
|
fh = fh.Serverx_FH_CMD (FoolHeat.CommandType.Read);
|
}
|
#if DEBUG
|
#else
|
}
|
#endif
|
});
|
}
|
|
void readFoolHeatPanelStatus ()
|
{
|
Control.ControlBytesSend (Command.ReadInstructionPanelKey, fh.SubnetID, fh.DeviceID, new byte [] { 20, fh.LoopID, fh.LoopID });
|
Control.ControlBytesSend (Command.ReadInstructionPanelKey, fh.SubnetID, fh.DeviceID, new byte [] { 21, fh.LoopID, fh.LoopID });
|
Control.ControlBytesSend (Command.ReadInstructionPanelKey, fh.SubnetID, fh.DeviceID, new byte [] { 24, fh.LoopID, fh.LoopID });
|
|
//switch (fh.TemperatureType) {
|
//case 1:
|
// Control.ControlBytesSend (Command.ReadInstructionPanelKey, fh.SubnetID, fh.DeviceID, new byte [] { 25, fh.LoopID, fh.LoopID });
|
// break;
|
//case 2:
|
// Control.ControlBytesSend (Command.ReadInstructionPanelKey, fh.SubnetID, fh.DeviceID, new byte [] { 26, fh.LoopID, fh.LoopID });
|
// break;
|
//case 3:
|
// Control.ControlBytesSend (Command.ReadInstructionPanelKey, fh.SubnetID, fh.DeviceID, new byte [] { 27, fh.LoopID, fh.LoopID });
|
// break;
|
//case 4:
|
// Control.ControlBytesSend (Command.ReadInstructionPanelKey, fh.SubnetID, fh.DeviceID, new byte [] { 28, fh.LoopID, fh.LoopID });
|
// break;
|
//default:
|
// break;
|
//}
|
|
Control.ControlBytesSend (Command.ReadPanleTemp, fh.SubnetID, fh.DeviceID, new byte [] { fh.LoopID }, SendCount.Zero);
|
Control.ControlBytesSend (Command.Read_Floor_Heat_State, fh.SubnetID, fh.DeviceID, new byte [] { (byte)(fh.LoopID - 1) });
|
}
|
}
|
}
|