using System;
using System.Collections.Generic;
using HDL_ON.DriverLayer;
using HDL_ON.Entity;
using HDL_ON.Stan;
using HDL_ON.UI.CSS;
using Shared;
namespace HDL_ON.UI
{
public class AcControlPage : DeviceFunctionCardCommonForm
{
#region ■ 变量声明___________________________
///
/// 空调温度控制控件
///
DiyArcSeekBar arcBar;
///
/// 减号按钮
///
Button btnMinus;
///
/// 加号按钮
///
Button btnPlus;
///
/// 温度按钮
///
Button btnTemp;
Button btnTempUint;
///
/// 室内温度按钮
///
Button btnIndoorTemp;
///
/// 模式按钮
///
Button btnMode;
///
/// 扫风按钮
///
Button btnSwing;
///
/// 风速按钮
///
Button btnWindSpeed;
///
/// 开关按钮
///
Button btnSwitch;
AC acFunction = new AC();
///
/// app自己控制的温度数值记录
///
List seltControlTemp = new List();
#endregion
#region ■ 初始化_____________________________
///
/// 初始化白色区域的内容
///
public override void InitFrameWhiteContent()
{
base.ShowColltionButton = false;
base.SetTitleText(Language.StringByID(StringId.Electric));
//初始化第一个索引页的内容
this.InitFrameWhiteContent1();
//刷新当前设备的状态缓存
this.RefreshNowDeviceStatuMemory(this.device);
//刷新界面状态
this.RefreshFormStatu();
//读取状态
new System.Threading.Thread(() =>
{
Control.Ins.SendReadCommand(device);
})
{ IsBackground = true }.Start();
}
///
/// 初始化第一个索引页的内容
///
private void InitFrameWhiteContent1()
{
arcBar = new DiyArcSeekBar()
{
Gravity = Gravity.CenterHorizontal,
OpenAngle = 160,
ThumbImageHeight = Application.GetRealWidth(50),
ProgressBarColor = CSS_Color.MainColor,
OfflineProgressBarColor = CSS_Color.PromptingColor2,
ArcColor = CSS_Color.BackgroundColor,
#if __IOS__
Y = Application.GetRealHeight(120 + 25),
Width = Application.GetRealWidth(260 - 40),
Height = Application.GetRealWidth(260 - 40),
SeekBarPadding = Application.GetRealWidth(8),
#else
Y = Application.GetRealHeight(120 + 40),
Width = Application.GetRealWidth(260 - 40),
Height = Application.GetRealWidth(260 - 40),
SeekBarPadding = Application.GetRealWidth(7),
#endif
};
FrameWhiteCentet1.AddChidren(arcBar);
arcBar.ThumbImagePath = device.GetAttrState(FunctionAttributeKey.OnOff) == "on" ? "FunctionIcon/AC/DiyThumbIconOn.png" : "FunctionIcon/AC/DiyThumbIcon.png";
arcBar.IsOffline = device.GetAttrState(FunctionAttributeKey.OnOff) == "off";
arcBar.MinValue = device.GetAttribute(FunctionAttributeKey.SetTemp).min;
arcBar.MaxValue = device.GetAttribute(FunctionAttributeKey.SetTemp).max;
arcBar.Progress = (int)Convert.ToDouble(device.GetAttrState(FunctionAttributeKey.SetTemp));
btnTemp = new Button()
{
Gravity = Gravity.CenterHorizontal,
Y = Application.GetRealHeight(206),
Width = Application.GetRealWidth(71),
Height = Application.GetRealWidth(60),
TextColor = CSS_Color.FirstLevelTitleColor,
TextSize = 50,
IsBold = true,
Text = Convert.ToDouble( device.GetAttrState(FunctionAttributeKey.SetTemp)).ToString(),
TextAlignment = TextAlignment.Center,
};
FrameWhiteCentet1.AddChidren(btnTemp);
btnTempUint = new Button()
{
X = btnTemp.Right,
Y = btnTemp.Y,
Width = Application.GetRealWidth(30),
Height = Application.GetRealHeight(30),
TextColor = CSS_Color.FirstLevelTitleColor,
TextSize = CSS_FontSize.EmphasisFontSize_Secondary,
IsBold = true,
TextAlignment = TextAlignment.CenterLeft,
Text = "°C",
};
FrameWhiteCentet1.AddChidren(btnTempUint);
btnIndoorTemp = new Button()
{
Gravity = Gravity.CenterHorizontal,
Y = btnTemp.Bottom,
Width = Application.GetRealWidth(120),
Height = Application.GetRealHeight(20),
Text = Language.StringByID(StringId.IndoorTemp) + "20°C",
TextColor = CSS_Color.PromptingColor1,
TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
};
FrameWhiteCentet1.AddChidren(btnIndoorTemp);
btnMinus = new Button()
{
X = Application.GetRealWidth(21),
Y = Application.GetRealHeight(263),
Width = Application.GetRealWidth(32),
Height = Application.GetRealWidth(32),
UnSelectedImagePath = "Public/MinusSignIcon.png",
};
FrameWhiteCentet1.AddChidren(btnMinus);
btnPlus = new Button()
{
X = Application.GetRealWidth(275),
Y = Application.GetRealHeight(263),
Width = Application.GetRealWidth(32),
Height = Application.GetRealWidth(32),
UnSelectedImagePath = "Public/PlusSignIcon.png",
};
FrameWhiteCentet1.AddChidren(btnPlus);
btnMode = new Button()
{
X = Application.GetRealWidth(60),
Y = Application.GetRealHeight(334),
Width = Application.GetRealWidth(30),
Height = Application.GetRealWidth(30),
UnSelectedImagePath = acFunction.GetModeIconPath(device.GetAttrState(FunctionAttributeKey.Mode)),
};
FrameWhiteCentet1.AddChidren(btnMode);
btnSwing = new Button()
{
Gravity = Gravity.CenterHorizontal,
Y = Application.GetRealHeight(330),
Width = Application.GetRealWidth(40),
Height = Application.GetRealWidth(40),
UnSelectedImagePath = "FunctionIcon/AC/SweepIconNullOn.png",
};
if (device.GetAttribute(FunctionAttributeKey.Swing) != null)
{
FrameWhiteCentet1.AddChidren(btnSwing);
}
btnWindSpeed = new Button()
{
X = Application.GetRealWidth(235),
Y = Application.GetRealHeight(337),
Width = Application.GetRealWidth(30),
Height = Application.GetRealWidth(30),
UnSelectedImagePath = acFunction.GetFanIconPath(device.GetAttrState(FunctionAttributeKey.FanSpeed)),
};
FrameWhiteCentet1.AddChidren(btnWindSpeed);
btnSwitch = new Button()
{
Gravity = Gravity.CenterHorizontal,
Y = Application.GetRealHeight(466),
Width = Application.GetRealWidth(32),
Height = Application.GetRealWidth(32),
UnSelectedImagePath = "Public/PowerClose.png",
SelectedImagePath = "Public/PowerOpen.png",
IsSelected = device.GetAttrState(FunctionAttributeKey.OnOff) == "on"
};
FrameWhiteCentet1.AddChidren(btnSwitch);
LoadEvent_TempChange();
LoadEvent_AcStatesChange();
LoadDiv_IrView();
}
///
/// 加载修改模式区域
///
void LoadDiv_ChangeModeView()
{
Dialog dialog = new Dialog();
FrameLayout dialogView = new FrameLayout()
{
BackgroundColor = CSS_Color.DialogTransparentColor1,
};
dialog.AddChidren(dialogView);
FrameLayout modeChangeView;
modeChangeView = new FrameLayout()
{
X = Application.GetRealWidth(30),
Y = Application.GetRealHeight(128),
Width = Application.GetRealWidth(160),
Height = Application.GetRealHeight(287),
BackgroundImagePath = "FunctionIcon/AC/DivBg1.png",
};
dialogView.AddChidren(modeChangeView);
Button btnTitle;
btnTitle = new Button()
{
X = Application.GetRealWidth(8 + 16),
Y = Application.GetRealHeight(8),
Width = Application.GetRealWidth(112),
Height = Application.GetRealHeight(44),
TextID = StringId.ChooseMode,
TextAlignment = TextAlignment.CenterLeft,
TextColor = CSS_Color.FirstLevelTitleColor,
TextSize = CSS_FontSize.EmphasisFontSize_Secondary,
};
modeChangeView.AddChidren(btnTitle);
Button btnLine = new Button()
{
X = btnTitle.X,
Y = btnTitle.Bottom,
Width = Application.GetRealWidth(112),
Height = Application.GetRealHeight(1),
BackgroundColor = CSS_Color.BackgroundColor,
};
modeChangeView.AddChidren(btnLine);
var modeList = device.GetAttribute(FunctionAttributeKey.Mode).value;
foreach (var m in modeList)
{
Button btnModeIcon = new Button()
{
X = btnTitle.X,
Y = Application.GetRealHeight(44 * (modeList.IndexOf(m) + 1) + 10 + 8),
Width = Application.GetRealWidth(24),
Height = Application.GetRealWidth(24),
IsSelected = device.GetAttrState(FunctionAttributeKey.Mode) == m,
};
modeChangeView.AddChidren(btnModeIcon);
Button btnModeText = new Button()
{
X = Application.GetRealWidth(12) + btnModeIcon.Right,
Y = Application.GetRealHeight(44 * (modeList.IndexOf(m) + 1) + 8),
Height = Application.GetRealHeight(44),
Width = Application.GetRealWidth(90),
TextAlignment = TextAlignment.CenterLeft,
TextColor = CSS_Color.FirstLevelTitleColor,
SelectedTextColor = CSS_Color.MainColor,
IsSelected = device.GetAttrState(FunctionAttributeKey.Mode) == m,
TextSize = CSS_FontSize.TextFontSize,
};
modeChangeView.AddChidren(btnModeText);
btnModeIcon.UnSelectedImagePath = acFunction.GetModeIconPath(m, false);
btnModeIcon.SelectedImagePath = acFunction.GetModeIconPath(m);
btnModeText.Text = acFunction.GetModeAttrText( m);
if (modeList.IndexOf(m) < modeList.Count - 1)
{
modeChangeView.AddChidren(new Button()
{
X = btnTitle.X,
Y = btnModeText.Bottom,
Width = Application.GetRealWidth(112),
Height = Application.GetRealHeight(1),
BackgroundColor = CSS_Color.BackgroundColor,
});
}
EventHandler eventHandler = (sender, e) =>
{
dialog.Close();
};
EventHandler eventHandler1 = (sender, e) =>
{
btnModeIcon.IsSelected = btnModeText.IsSelected = true;
device.SetAttrState(FunctionAttributeKey.Mode, m);
btnMode.UnSelectedImagePath = acFunction.GetModeIconPath(m);
Dictionary d = new Dictionary();
d.Add(FunctionAttributeKey.Mode, m);
Control.Ins.SendWriteCommand(device, d);
dialog.Close();
if (device.GetAttrState(FunctionAttributeKey.Mode) == "fan")
{
arcBar.IsClickable = false;
arcBar.IsOffline = true;
}
else
{
arcBar.IsOffline = false;
arcBar.IsClickable = true;
}
};
btnModeIcon.MouseUpEventHandler = eventHandler1;
btnModeText.MouseUpEventHandler = eventHandler1;
dialogView.MouseUpEventHandler = eventHandler;
}
dialogView.MouseUpEventHandler = (sender, e) => {
dialog.Close();
};
dialog.Show();
}
///
/// 加载修改扫风模式区域
///
void LoadDiv_ChangeSwingView()
{
Dialog dialog = new Dialog();
FrameLayout dialogView = new FrameLayout()
{
BackgroundColor = CSS_Color.DialogTransparentColor1,
};
dialog.AddChidren(dialogView);
FrameLayout modeChangeView;
modeChangeView = new FrameLayout()
{
Gravity = Gravity.CenterHorizontal,
Y = Application.GetRealHeight(128),
Width = Application.GetRealWidth(160),
Height = Application.GetRealHeight(287),
BackgroundImagePath = "FunctionIcon/AC/DivBg2.png",
};
dialogView.AddChidren(modeChangeView);
Button btnTitle;
btnTitle = new Button()
{
X = Application.GetRealWidth(8 + 16),
Y = Application.GetRealHeight(8),
Width = Application.GetRealWidth(112),
Height = Application.GetRealHeight(44),
TextID = StringId.Swing,
TextAlignment = TextAlignment.CenterLeft,
TextColor = CSS_Color.FirstLevelTitleColor,
TextSize = CSS_FontSize.EmphasisFontSize_Secondary,
};
modeChangeView.AddChidren(btnTitle);
Button btnLine = new Button()
{
X = btnTitle.X,
Y = btnTitle.Bottom,
Width = Application.GetRealWidth(112),
Height = Application.GetRealHeight(1),
BackgroundColor = CSS_Color.BackgroundColor,
};
modeChangeView.AddChidren(btnLine);
var modeList = device.GetAttribute(FunctionAttributeKey.Swing).value;
foreach (var m in modeList)
{
Button btnModeIcon = new Button()
{
X = btnTitle.X,
Y = Application.GetRealHeight(44 * (modeList.IndexOf(m) + 1) + 10 + 8),
Width = Application.GetRealWidth(24),
Height = Application.GetRealWidth(24),
IsSelected = device.GetAttrState(FunctionAttributeKey.Swing) == m,
};
modeChangeView.AddChidren(btnModeIcon);
Button btnModeText = new Button()
{
X = Application.GetRealWidth(12) + btnModeIcon.Right,
Y = Application.GetRealHeight(44 * (modeList.IndexOf(m) + 1) + 8),
Height = Application.GetRealHeight(44),
Width = Application.GetRealWidth(90),
TextAlignment = TextAlignment.CenterLeft,
TextColor = CSS_Color.FirstLevelTitleColor,
SelectedTextColor = CSS_Color.MainColor,
IsSelected = device.GetAttrState(FunctionAttributeKey.Swing) == m,
TextSize = CSS_FontSize.TextFontSize,
};
modeChangeView.AddChidren(btnModeText);
if (modeList.IndexOf(m) < modeList.Count - 1)
{
modeChangeView.AddChidren(new Button()
{
X = btnTitle.X,
Y = btnModeText.Bottom,
Width = Application.GetRealWidth(112),
Height = Application.GetRealHeight(1),
BackgroundColor = CSS_Color.BackgroundColor,
});
}
btnModeIcon.UnSelectedImagePath = acFunction.GetSwingIconPath(m, false);
btnModeIcon.SelectedImagePath = acFunction.GetSwingIconPath(m);
btnModeText.Text = acFunction.GetSwingAttrText(m);
EventHandler eventHandler = (sender, e) =>
{
dialog.Close();
};
EventHandler eventHandler1 = (sender, e) =>
{
btnModeIcon.IsSelected = btnModeText.IsSelected = true;
device.SetAttrState(FunctionAttributeKey.Swing, m);
btnSwing.UnSelectedImagePath = acFunction.GetSwingIconPath(m);
Dictionary d = new Dictionary();
d.Add(FunctionAttributeKey.Swing, m);
Control.Ins.SendWriteCommand(device, d);
dialog.Close();
};
btnModeIcon.MouseUpEventHandler = eventHandler1;
btnModeText.MouseUpEventHandler = eventHandler1;
dialogView.MouseUpEventHandler = eventHandler;
}
dialogView.MouseUpEventHandler = (sender, e) => {
dialog.Close();
};
dialog.Show();
}
///
/// 加载修改模式区域
///
void LoadDiv_ChangeFanView()
{
Dialog dialog = new Dialog();
FrameLayout dialogView = new FrameLayout()
{
BackgroundColor = CSS_Color.DialogTransparentColor1,
};
dialog.AddChidren(dialogView);
FrameLayout modeChangeView;
modeChangeView = new FrameLayout()
{
X = Application.GetRealWidth(185),
Y = Application.GetRealHeight(172),
Width = Application.GetRealWidth(160),
Height = Application.GetRealHeight(243),
BackgroundImagePath = "FunctionIcon/AC/DivBg2.png",
};
dialogView.AddChidren(modeChangeView);
Button btnTitle;
btnTitle = new Button()
{
X = Application.GetRealWidth(8 + 16),
Y = Application.GetRealHeight(8),
Width = Application.GetRealWidth(112),
Height = Application.GetRealHeight(44),
TextID = StringId.ChooseFan,
TextAlignment = TextAlignment.CenterLeft,
TextColor = CSS_Color.FirstLevelTitleColor,
TextSize = CSS_FontSize.EmphasisFontSize_Secondary,
};
modeChangeView.AddChidren(btnTitle);
Button btnLine = new Button()
{
X = btnTitle.X,
Y = btnTitle.Bottom,
Width = Application.GetRealWidth(112),
Height = Application.GetRealHeight(1),
BackgroundColor = CSS_Color.BackgroundColor,
};
modeChangeView.AddChidren(btnLine);
var modeList = device.GetAttribute(FunctionAttributeKey.FanSpeed).value;
foreach (var m in modeList)
{
Button btnFanIcon = new Button()
{
X = btnTitle.X,
Y = Application.GetRealHeight(44 * (modeList.IndexOf(m) + 1) + 10 + 8),
Width = Application.GetRealWidth(24),
Height = Application.GetRealWidth(24),
IsSelected = device.GetAttrState(FunctionAttributeKey.FanSpeed) == m,
};
modeChangeView.AddChidren(btnFanIcon);
Button btnFanText = new Button()
{
X = Application.GetRealWidth(12) + btnFanIcon.Right,
Y = Application.GetRealHeight(44 * (modeList.IndexOf(m) + 1) + 8),
Height = Application.GetRealHeight(44),
Width = Application.GetRealWidth(70),
TextAlignment = TextAlignment.CenterLeft,
TextColor = CSS_Color.FirstLevelTitleColor,
SelectedTextColor = CSS_Color.MainColor,
IsSelected = device.GetAttrState(FunctionAttributeKey.FanSpeed) == m,
TextSize = CSS_FontSize.TextFontSize,
};
modeChangeView.AddChidren(btnFanText);
btnFanIcon.UnSelectedImagePath = acFunction.GetFanIconPath(m,false);
btnFanIcon.SelectedImagePath = acFunction.GetFanIconPath(m);
btnFanText.Text = acFunction.GetFanAttrText(m);
if (modeList.IndexOf(m) < modeList.Count - 1)
{
modeChangeView.AddChidren(new Button()
{
X = btnTitle.X,
Y = btnFanText.Bottom,
Width = Application.GetRealWidth(112),
Height = Application.GetRealHeight(1),
BackgroundColor = CSS_Color.BackgroundColor,
});
}
EventHandler closeDialogEvent = (sender, e) =>
{
dialog.Close();
};
EventHandler eventHandler1 = (sender, e) =>
{
btnFanIcon.IsSelected = btnFanText.IsSelected = true;
device.SetAttrState(FunctionAttributeKey.FanSpeed, m);
btnWindSpeed.UnSelectedImagePath = acFunction.GetFanIconPath(m);
System.Collections.Generic.Dictionary d = new System.Collections.Generic.Dictionary();
d.Add(FunctionAttributeKey.FanSpeed, m);
Control.Ins.SendWriteCommand(device, d);
//btnWindSpeed.UnSelectedImagePath = btnFanIcon.UnSelectedImagePath;
dialog.Close();
};
btnFanIcon.MouseUpEventHandler = eventHandler1;
btnFanText.MouseUpEventHandler = eventHandler1;
dialogView.MouseUpEventHandler = closeDialogEvent;
}
dialog.Show();
}
///
/// 加载红外遥控器,额外按钮
///
void LoadDiv_IrView()
{
if (device.spk == SPK.AcIr)
{
var btnMore = new Button()
{
Gravity = Gravity.CenterHorizontal,
Y = Application.GetRealHeight(334 + 80),
Width = Application.GetRealWidth(35),
Height = Application.GetRealWidth(35),
UnSelectedImagePath = "FunctionIcon/AC/More.png",
};
FrameWhiteCentet1.AddChidren(btnMore);
btnMore.MouseUpEventHandler = (sender, e) => {
LoadDialog_IrMoreView();
};
}
}
///
/// 加载额外对红外按钮界面
///
void LoadDialog_IrMoreView()
{
Dialog dialog = new Dialog();
var div = new FrameLayout();
dialog.AddChidren(div);
div.MouseUpEventHandler = (sender, e) => {
dialog.Close();
};
var bodyView = new FrameLayout()
{
Y = Application.GetRealHeight(427),//667
Height = Application.GetRealHeight(240),
BackgroundColor = CSS_Color.MainBackgroundColor,
};
div.AddChidren(bodyView);
var contentView = new VerticalScrolViewLayout()
{
Y = Application.GetRealHeight(16),
Gravity = Gravity.CenterHorizontal,
Width = Application.GetRealWidth(296+200),
};
bodyView.AddChidren(contentView);
var row = new FrameLayout()
{
Height = Application.GetRealHeight(60),
Width = Application.GetRealWidth(296),
Gravity = Gravity.CenterHorizontal,
};
contentView.AddChidren(row);
int index = 0;
List attrList = new List();
attrList.AddRange(device.attributes);
attrList.Add(new FunctionAttributes() {
key = "+",
});
foreach (var attr in attrList)
{
if (attr.key == FunctionAttributeKey.Mode
|| attr.key == FunctionAttributeKey.OnOff
|| attr.key == FunctionAttributeKey.SetTemp
|| attr.key == FunctionAttributeKey.SetTempStep
|| attr.key == FunctionAttributeKey.FanSpeed
|| attr.key == FunctionAttributeKey.FanManual
|| attr.key == FunctionAttributeKey.FanAuto
)
{
continue;
}
if (index != 0 && index % 3 == 0)
{
row = new FrameLayout()
{
Height = Application.GetRealHeight(56),
Width = Application.GetRealWidth(296),
Gravity = Gravity.CenterHorizontal,
};
contentView.AddChidren(row);
}
if (attr.key == "+")
{
var addView = new FrameLayout()
{
Gravity = Gravity.CenterVertical,
Width = Application.GetRealWidth(88),
Height = Application.GetRealHeight(40),
Radius = (uint)Application.GetRealHeight(18),
BorderColor = CSS_Color.PromptingColor1,
BorderWidth = (uint)Application.GetRealWidth(2),
};
if (index % 3 == 1)
{
addView.Gravity = Gravity.Center;
}
else if (index % 3 == 2)
{
addView.X = Application.GetRealWidth(208);
}
row.AddChidren(addView);
var btnAdd = new Button()
{
Gravity = Gravity.Center,
UnSelectedImagePath = "Public/PlusSignIcon.png",
Width = Application.GetRealWidth(32),
Height = Application.GetRealWidth(32),
};
addView.AddChidren(btnAdd);
btnAdd.MouseUpEventHandler = (sender, e) =>
{
dialog.Close();
Action action = () => {
LoadDialog_IrMoreView();
};
var addButton = new AcControlPage_AddIrButton(action);
MainPage.BasePageView.AddChidren(addButton);
addButton.Show(device);
MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
};
}
else
{
var btn = new Button()
{
Gravity = Gravity.CenterVertical,
Width = Application.GetRealWidth(88),
Height = Application.GetRealHeight(40),
Radius = (uint)Application.GetRealHeight(18),
BorderColor = CSS_Color.PromptingColor1,
BorderWidth = (uint)Application.GetRealWidth(2),
TextAlignment = TextAlignment.Center,
TextSize = CSS_FontSize.TextFontSize,
TextColor = CSS_Color.FirstLevelTitleColor,
SelectedTextColor = CSS_Color.MainBackgroundColor,
SelectedBackgroundColor = CSS_Color.MainColor,
};
if (attr.value.Count > 0)
{
btn.Text = attr.value[0];
}
if (index % 3 == 1)
{
btn.Gravity = Gravity.Center;
}
else if (index % 3 == 2)
{
btn.X = Application.GetRealWidth(208);
}
row.AddChidren(btn);
btn.MouseUpEventHandler = (sender, e) =>
{
Dictionary d = new Dictionary();
d.Add(attr.key, "");
Control.Ins.SendWriteCommand(device, d);
new System.Threading.Thread(() =>
{
System.Threading.Thread.Sleep(2000);
Application.RunOnMainThread(() =>
{
btn.IsSelected = false;
});
})
{ IsBackground = true }.Start();
};
}
index++;
}
dialog.Show();
}
#endregion
#region ■ 设备状态反馈_______________________
///
/// 设备状态反馈
///
///
public override void DeviceStatuPush(Function i_LocalDevice)
{
//不是同一个东西
if (this.device.sid != i_LocalDevice.sid) { return; }
//刷新当前设备的状态缓存
this.RefreshNowDeviceStatuMemory(i_LocalDevice);
//刷新界面状态
this.RefreshFormStatu();
}
#endregion
#region ■ 发送各种命令_______________________
///
/// 温度改变模式
///
void LoadEvent_TempChange()
{
btnMinus.MouseUpEventHandler = (sender, e) =>
{
if (device.trait_on_off.curValue.ToString() == "off" || device.GetAttrState(FunctionAttributeKey.Mode) == "fan")
{
return;
}
var temp = (int)Convert.ToDouble(device.GetAttrState(FunctionAttributeKey.SetTemp));
if (temp <= device.GetAttribute(FunctionAttributeKey.SetTemp).min)
{
return;
}
temp--;
seltControlTemp.Add(temp.ToString());
arcBar.Progress = temp;
btnTemp.Text = temp.ToString();
device.SetAttrState(FunctionAttributeKey.SetTemp, temp.ToString());
System.Collections.Generic.Dictionary d = new System.Collections.Generic.Dictionary();
d.Add(FunctionAttributeKey.SetTemp, temp.ToString());
Control.Ins.SendWriteCommand(device, d);
};
btnPlus.MouseUpEventHandler = (sender, e) =>
{
if (device.trait_on_off.curValue.ToString() == "off" || device.GetAttrState(FunctionAttributeKey.Mode) == "fan")
{
return;
}
var temp = (int)Convert.ToDouble(device.GetAttrState(FunctionAttributeKey.SetTemp));
if (temp >= device.GetAttribute(FunctionAttributeKey.SetTemp).max)
{
return;
}
temp++;
seltControlTemp.Add(temp.ToString());
arcBar.Progress = temp;
btnTemp.Text = temp.ToString();
device.SetAttrState(FunctionAttributeKey.SetTemp, temp.ToString());
System.Collections.Generic.Dictionary d = new System.Collections.Generic.Dictionary();
d.Add(FunctionAttributeKey.SetTemp, temp.ToString());
Control.Ins.SendWriteCommand(device, d);
};
arcBar.OnStopTrackingTouchEvent = (sender, e) =>
{
device.SetAttrState(FunctionAttributeKey.SetTemp, arcBar.Progress.ToString());
btnTemp.Text = arcBar.Progress.ToString();
System.Collections.Generic.Dictionary d = new System.Collections.Generic.Dictionary();
d.Add(FunctionAttributeKey.SetTemp, arcBar.Progress.ToString());
Control.Ins.SendWriteCommand(device, d);
};
arcBar.OnProgressChangedEvent = (sender, e) =>
{
device.SetAttrState(FunctionAttributeKey.SetTemp, e.ToString());
btnTemp.Text = e.ToString();
};
//arcBar.MouseDownEventHandler = (sender, e) => {
// Console.WriteLine("ddd");
// MainPage.BasePageView.ScrollEnabled =false;
//};
//arcBar.MouseUpEventHandler = (sender, e) => {
// Console.WriteLine("ddd2");
// MainPage.BasePageView.ScrollEnabled = true;
//};
}
///
/// 控制模式事件
///
void LoadEvent_AcStatesChange()
{
btnMode.MouseUpEventHandler = (sender, e) =>
{
if (device.trait_on_off.curValue.ToString() == "off")
{
return;
}
LoadDiv_ChangeModeView();
};
//扫风改变模式
btnSwing.MouseUpEventHandler = (sender, e) =>
{
if (device.trait_on_off.curValue.ToString() == "off")
{
return;
}
LoadDiv_ChangeSwingView();
};
btnWindSpeed.MouseUpEventHandler = (sender, e) =>
{
if (device.trait_on_off.curValue.ToString() == "off")
{
return;
}
LoadDiv_ChangeFanView();
};
btnSwitch.MouseUpEventHandler = (sender, e) =>
{
btnSwitch.IsSelected = !btnSwitch.IsSelected;
device.trait_on_off.curValue = btnSwitch.IsSelected ? "on" : "off";
if (device.trait_on_off.curValue.ToString() == "on")
{
arcBar.ThumbImagePath = "FunctionIcon/AC/DiyThumbIconOn.png";
btnSwitch.IsSelected = true;
arcBar.IsOffline = false;
}
else
{
arcBar.ThumbImagePath = "FunctionIcon/AC/DiyThumbIcon.png";
btnSwitch.IsBold = false;
arcBar.IsOffline = true;
}
System.Collections.Generic.Dictionary d = new System.Collections.Generic.Dictionary();
d.Add(FunctionAttributeKey.OnOff, device.trait_on_off.curValue.ToString());
Control.Ins.SendWriteCommand(device, d);
};
}
#endregion
#region ■ 刷新界面状态_______________________
///
/// 刷新界面状态
///
private void RefreshFormStatu()
{
Application.RunOnMainThread(() =>
{
btnTemp.Text = Convert.ToDouble( device.GetAttrState(FunctionAttributeKey.SetTemp)).ToString();
btnIndoorTemp.Text = Language.StringByID(StringId.IndoorTemp) + Convert.ToInt32(Convert.ToDouble(device.GetAttrState(FunctionAttributeKey.RoomTemp))) + "°C";
btnMode.SelectedImagePath = acFunction.GetModeIconPath(device.GetAttrState(FunctionAttributeKey.Mode));
btnSwing.SelectedImagePath = acFunction.GetSwingIconPath(device.GetAttrState(FunctionAttributeKey.Swing));
btnWindSpeed.SelectedImagePath = acFunction.GetFanIconPath(device.GetAttrState(FunctionAttributeKey.FanSpeed));
btnMode.UnSelectedImagePath = acFunction.GetModeIconPath(device.GetAttrState(FunctionAttributeKey.Mode),false);
btnSwing.UnSelectedImagePath = acFunction.GetSwingIconPath(device.GetAttrState(FunctionAttributeKey.Swing),false);
btnWindSpeed.UnSelectedImagePath = acFunction.GetFanIconPath(device.GetAttrState(FunctionAttributeKey.FanSpeed),false);
var updataTemp = Convert.ToInt32(Convert.ToDouble(device.GetAttrState(FunctionAttributeKey.SetTemp)));
//app自己控制的不用更新,会造成跳动
if (seltControlTemp.Contains(updataTemp.ToString()))
{
seltControlTemp.Remove(updataTemp.ToString());
}
else
{
arcBar.Progress = updataTemp;
}
if (device.trait_on_off.curValue.ToString() == "on")
{
btnMode.IsSelected = btnSwing.IsSelected = btnWindSpeed.IsSelected = true;
arcBar.IsOffline = false;
btnSwitch.IsSelected = true;
arcBar.ThumbImagePath = "FunctionIcon/AC/DiyThumbIconOn.png";
if (device.GetAttrState(FunctionAttributeKey.Mode) == "fan")
{
arcBar.IsClickable = false;
}
else
{
arcBar.IsClickable = true;
}
}
else
{
btnMode.IsSelected = btnSwing.IsSelected = btnWindSpeed.IsSelected = false;
arcBar.IsOffline = true;
btnSwitch.IsSelected = false;
arcBar.IsClickable = false;
arcBar.ThumbImagePath = "FunctionIcon/AC/DiyThumbIcon.png";
}
});
}
#endregion
#region ■ 一般方法___________________________
///
/// 刷新当前设备的状态缓存
///
private void RefreshNowDeviceStatuMemory(Function i_LocalDevice)
{
}
#endregion
}
}