using Shared;
using HDL_ON.Stan;
using System;
using System.Collections.Generic;
using System.Text;
using HDL_ON.UI.CSS;
using HDL_ON.Entity;
using HDL_ON.DriverLayer;
namespace HDL_ON.UI
{
///
/// 涂鸦空气净化器的控制界面
///
public class TuyaAirCleanerPage : DeviceFunctionCardCommonForm
{
#region ■ 变量声明___________________________
///
/// 图片控件
///
private PicViewControl btnPictrue = null;
///
/// 滤芯使用率控件
///
private NormalViewControl btnUsePersent = null;
///
/// 温度
///
private NormalViewControl btnTemperature = null;
///
/// 湿度
///
private NormalViewControl btnHumidity = null;
///
/// PM2.5
///
private NormalViewControl btnPm25 = null;
///
/// 开关控件
///
private IconViewControl btnSwitch = null;
///
/// 模式控件
///
private IconViewControl btnMode = null;
///
/// 模式的显示文本控件
///
private NormalViewControl btnModeView = null;
///
/// 风速控件
///
private IconViewControl btnFan = null;
///
/// 风速的显示文本控件
///
private NormalViewControl btnFanView = null;
///
/// 定时控件
///
private IconViewControl btnTime = null;
///
/// 定时的显示文本控件
///
private NormalViewControl btnTimeView = null;
///
/// 童锁开关控件
///
private MostRightIconControl btnLockSwitch = null;
///
/// 负离子开关控件
///
private MostRightIconControl btnAnionSwitch = null;
///
/// 滤芯复位开关控件 2021.03.09控件变更
///
//private MostRightIconControl btnResetSwitch = null;
///
/// 空气质量数据
///
private AirCleanerData airCleanerData = new AirCleanerData();
#endregion
#region ■ 初始化_____________________________
///
/// 初始化白色区域的内容
///
public override void InitFrameWhiteContent()
{
base.SetTitleText(Language.StringByID(StringId.AirCleaner));
//添加第二索引页
this.AddSecondPage();
//初始化第一个索引页的内容
this.InitFrameWhiteContent1();
//初始化第二个索引页的内容
this.InitFrameWhiteContent2();
//刷新当前设备的状态缓存
this.RefreshNowDeviceStatuMemory(this.device);
//刷新界面状态
this.RefreshFormStatu();
}
///
/// 初始化第一个索引页的内容
///
private void InitFrameWhiteContent1()
{
//图片控件
this.btnPictrue = new PicViewControl(94, 130);
btnPictrue.Y = Application.GetRealHeight(90);
btnPictrue.Gravity = Gravity.CenterHorizontal;
btnPictrue.UnSelectedImagePath = "FunctionIcon/Electrical/Fan/AirCleanerOff.png";
btnPictrue.SelectedImagePath = "FunctionIcon/Electrical/Fan/AirCleanerOn.png";
FrameWhiteCentet1.AddChidren(btnPictrue);
btnPictrue.ButtonClickEvent += (sender, e) =>
{
//发送开关命令
this.SendSwitchComand();
};
//滤芯使用
this.btnUsePersent = new NormalViewControl(FrameWhiteCentet1.Width, Application.GetRealHeight(20), false);
btnUsePersent.TextAlignment = TextAlignment.Center;
btnUsePersent.Y = btnPictrue.Bottom + Application.GetRealHeight(16);
btnUsePersent.TextColor = CSS.CSS_Color.MainColor;
FrameWhiteCentet1.AddChidren(btnUsePersent);
//温度
this.btnTemperature = new NormalViewControl(106, 28, true);
btnTemperature.Y = btnUsePersent.Bottom + Application.GetRealHeight(23);
btnTemperature.TextSize = CSS.CSS_FontSize.EmphasisFontSize_Secondary;
btnTemperature.TextAlignment = TextAlignment.Center;
btnTemperature.Text = "22℃";
FrameWhiteCentet1.AddChidren(btnTemperature);
//室内温度
var btnTemperatureView = new NormalViewControl(btnTemperature.Width, Application.GetRealHeight(14), false);
btnTemperatureView.Y = btnTemperature.Bottom + Application.GetRealHeight(4);
btnTemperatureView.TextSize = CSS.CSS_FontSize.PromptFontSize_SecondaryLevel;
btnTemperatureView.TextAlignment = TextAlignment.Center;
btnTemperatureView.TextID = StringId.IndoorTemp;
FrameWhiteCentet1.AddChidren(btnTemperatureView);
//一条竖线
var btnLine1 = new NormalViewControl(1, Application.GetRealHeight(19), false);
btnLine1.X = btnTemperature.Right;
btnLine1.Y = btnTemperature.Y + (btnTemperature.Height - Application.GetRealHeight(19)) / 2;
btnLine1.BackgroundColor = CSS.CSS_Color.TextualColor;
FrameWhiteCentet1.AddChidren(btnLine1);
//PM2.5
this.btnPm25 = new NormalViewControl(106, 28, true);
btnPm25.Y = btnTemperature.Y;
btnPm25.X = btnLine1.Right;
btnPm25.TextSize = CSS.CSS_FontSize.EmphasisFontSize_Secondary;
btnPm25.TextAlignment = TextAlignment.Center;
btnPm25.Text = "0";
FrameWhiteCentet1.AddChidren(btnPm25);
//PM2.5
var btnPm25View = new NormalViewControl(btnPm25.Width, Application.GetRealHeight(14), false);
btnPm25View.X = btnPm25.X;
btnPm25View.Y = btnTemperatureView.Y;
btnPm25View.TextSize = CSS.CSS_FontSize.PromptFontSize_SecondaryLevel;
btnPm25View.TextAlignment = TextAlignment.Center;
btnPm25View.Text = "PM2.5";
FrameWhiteCentet1.AddChidren(btnPm25View);
//一条竖线
var btnLine2 = new NormalViewControl(1, btnLine1.Height, false);
btnLine2.X = btnPm25.Right;
btnLine2.Y = btnLine1.Y;
btnLine2.BackgroundColor = CSS_Color.TextualColor;
FrameWhiteCentet1.AddChidren(btnLine2);
//湿度
this.btnHumidity = new NormalViewControl(114, 28, true);
btnHumidity.Y = btnTemperature.Y;
btnHumidity.X = btnLine2.Right;
btnHumidity.TextSize = CSS.CSS_FontSize.EmphasisFontSize_Secondary;
btnHumidity.TextAlignment = TextAlignment.Center;
btnHumidity.Text = "50%";
FrameWhiteCentet1.AddChidren(btnHumidity);
//室内湿度
var btnHumidityView = new NormalViewControl(btnHumidity.Width, Application.GetRealHeight(14), false);
btnHumidityView.X = btnHumidity.X;
btnHumidityView.Y = btnTemperatureView.Y;
btnHumidityView.TextSize = CSS_FontSize.PromptFontSize_SecondaryLevel;
btnHumidityView.TextAlignment = TextAlignment.Center;
btnHumidityView.TextID = StringId.IndoorHumidity;
FrameWhiteCentet1.AddChidren(btnHumidityView);
//2021.01.26 目前不用温度和湿度
btnTemperature.RemoveFromParent();
btnTemperatureView.RemoveFromParent();
btnLine1.RemoveFromParent();
btnLine2.RemoveFromParent();
btnHumidity.RemoveFromParent();
btnHumidityView.RemoveFromParent();
//风速图标
this.btnFan = new IconViewControl(38);
btnFan.UnSelectedImagePath = "FunctionIcon/Electrical/Fan/Fan.png";
btnFan.X = Application.GetRealWidth(40);
btnFan.Y = btnPm25View.Bottom + Application.GetRealHeight(40);
FrameWhiteCentet1.AddChidren(btnFan);
btnFan.ButtonClickEvent += (sender, e) =>
{
//显示风速界面
this.ShowFanSpeedView();
};
this.btnFanView = new NormalViewControl(80, 18, true);
btnFanView.Y = btnFan.Bottom + Application.GetRealHeight(10);
btnFanView.X = btnFan.X - (Application.GetRealWidth(80) - btnFan.Width) / 2;
btnFanView.TextAlignment = TextAlignment.Center;
btnFanView.TextSize = CSS_FontSize.PromptFontSize_FirstLevel;
btnFanView.Text = Language.StringByID(StringId.FanSpeed);
FrameWhiteCentet1.AddChidren(btnFanView);
//定时图标
this.btnTime = new IconViewControl(38);
btnTime.UnSelectedImagePath = "FunctionIcon/Electrical/Fan/Time.png";
btnTime.Y = btnFan.Y;
btnTime.Gravity = Gravity.CenterHorizontal;
FrameWhiteCentet1.AddChidren(btnTime);
btnTime.ButtonClickEvent += (sender, e) =>
{
//显示定时界面
this.ShowTimingSelectView();
};
this.btnTimeView = new NormalViewControl(80, 18, true);
btnTimeView.Y = btnFanView.Y;
btnTimeView.X = btnTime.X - (Application.GetRealWidth(80) - btnTime.Width) / 2;
btnTimeView.TextAlignment = TextAlignment.Center;
btnTimeView.TextSize = CSS_FontSize.PromptFontSize_FirstLevel;
FrameWhiteCentet1.AddChidren(btnTimeView);
//模式图标
this.btnMode = new IconViewControl(38);
btnMode.Y = btnFan.Y;
btnMode.X = btnTime.Right + Application.GetRealWidth(66);
FrameWhiteCentet1.AddChidren(btnMode);
btnMode.ButtonClickEvent += (sender, e) =>
{
//显示模式界面
this.ShowModeSelectView();
};
this.btnModeView = new NormalViewControl(80, 18, true);
btnModeView.Y = btnFanView.Y;
btnModeView.X = btnMode.X - (Application.GetRealWidth(80) - btnMode.Width) / 2;
btnModeView.TextAlignment = TextAlignment.Center;
btnModeView.TextSize = CSS_FontSize.PromptFontSize_FirstLevel;
FrameWhiteCentet1.AddChidren(btnModeView);
//开关图标
this.btnSwitch = new IconViewControl(40);
btnSwitch.Gravity = Gravity.CenterHorizontal;
btnSwitch.Y = btnMode.Bottom + Application.GetRealHeight(61);
btnSwitch.UnSelectedImagePath = "Public/PowerClose.png";
btnSwitch.SelectedImagePath = "Public/PowerOpen.png";
FrameWhiteCentet1.AddChidren(btnSwitch);
btnSwitch.ButtonClickEvent += (sender, e) =>
{
//发送开关命令
this.SendSwitchComand();
};
}
///
/// 初始化第二个索引页的内容
///
private void InitFrameWhiteContent2()
{
//开关
var btnTitleName = new NormalViewControl(270, 37, true);
btnTitleName.X = Application.GetRealWidth(16);
btnTitleName.Y = Application.GetRealHeight(18);
btnTitleName.TextColor = CSS_Color.FirstLevelTitleColor;
btnTitleName.TextSize = CSS_FontSize.EmphasisFontSize_FirstLevel;
btnTitleName.TextID = StringId.OnOff;
FrameWhiteCentet2.AddChidren(btnTitleName);
//童锁
var rowLock = new FrameRowControl();
rowLock.Height = Application.GetRealHeight(50);
rowLock.Width = FrameWhiteCentet2.Width;
rowLock.Y = Application.GetRealHeight(75);
FrameWhiteCentet2.AddChidren(rowLock);
rowLock.AddLeftCaption(Language.StringByID(StringId.V_chip), 200);
rowLock.AddBottomLine();
this.btnLockSwitch = rowLock.AddMostRightSwitchIcon();
btnLockSwitch.IsSelected = this.airCleanerData.Lock;
btnLockSwitch.ButtonClickEvent += (sender, e) =>
{
if (this.btnSwitch.IsSelected == false)
{
//还没有打开开关
return;
}
//发送使能命令
this.SendEnableComand(btnLockSwitch, "lock", btnLockSwitch.IsSelected == true ? "false" : "true");
};
//负离子
var rowAnion = new FrameRowControl();
rowAnion.Height = Application.GetRealHeight(50);
rowAnion.Width = FrameWhiteCentet2.Width;
rowAnion.Y = rowLock.Bottom;
FrameWhiteCentet2.AddChidren(rowAnion);
rowAnion.AddLeftCaption(Language.StringByID(StringId.Anion), 200);
rowAnion.AddBottomLine();
this.btnAnionSwitch = rowAnion.AddMostRightSwitchIcon();
btnAnionSwitch.IsSelected = this.airCleanerData.Anion;
btnAnionSwitch.ButtonClickEvent += (sender, e) =>
{
if (this.btnSwitch.IsSelected == false)
{
//还没有打开开关
return;
}
//发送使能命令
this.SendEnableComand(btnAnionSwitch, "anion", btnAnionSwitch.IsSelected == true ? "false" : "true");
};
//滤芯复位
var rowReset = new FrameRowControl();
rowReset.Height = Application.GetRealHeight(50);
rowReset.Width = FrameWhiteCentet2.Width;
rowReset.Y = rowAnion.Bottom;
//FrameWhiteCentet2.AddChidren(rowReset);
rowReset.AddLeftCaption(Language.StringByID(StringId.FilterElementReset), 200);
rowReset.AddBottomLine();
rowReset.AddRightArrow();
rowReset.ButtonClickEvent += (sender, e) =>
{
if (this.btnSwitch.IsSelected == false)
{
//还没有打开开关
return;
}
//请确认是否已实际重置滤芯并按{0}照说明书要求操作设备进行滤芯{0}寿命重新计时
string msg = Language.StringByID(StringId.FilterElementResetMsg).Replace("{0}", "\r\n");
HdlMessageLogic.Current.ShowMassage(ShowMsgType.Confirm, msg, () =>
{
//发送使能命令
this.SendEnableComand(null, "filter_reset", "true");
});
};
}
#endregion
#region ■ 显示风速界面_______________________
///
/// 显示风速界面
///
private void ShowFanSpeedView()
{
//整个灰色界面
var frameBack = new Dialog();
var dialogBody = new NormalFrameLayout();
frameBack.AddChidren(dialogBody);
dialogBody.ButtonClickEvent = (sender, e) =>
{
frameBack.Close();
};
frameBack.Show();
//菜单控件(选择风速)
var menuContr = new DialogTitleMenuControl(4, Language.StringByID(StringId.WindSpeedSelection));
menuContr.X = Application.GetRealWidth(5);
menuContr.Y = Application.GetRealHeight(240);
menuContr.Width = Application.GetRealWidth(160);
menuContr.Height = Application.GetRealHeight(200);
dialogBody.AddChidren(menuContr);
//低档
var iconPath = this.airCleanerData.Gear == "1" ? "FunctionIcon/Electrical/Fan/LowGearSelect.png" : "FunctionIcon/Electrical/Fan/LowGear.png";
menuContr.AddRowMenu(Language.StringByID(StringId.LowGear), iconPath, this.airCleanerData.Gear == "1", () =>
{
frameBack.Close();
//发送风速命令
this.SendFanSpeedComand("1");
});
//中档
iconPath = this.airCleanerData.Gear == "2" ? "FunctionIcon/Electrical/Fan/MidGearSelect.png" : "FunctionIcon/Electrical/Fan/MidGear.png";
menuContr.AddRowMenu(Language.StringByID(StringId.MidGear), iconPath, this.airCleanerData.Gear == "2", () =>
{
frameBack.Close();
//发送风速命令
this.SendFanSpeedComand("2");
});
//高档
iconPath = this.airCleanerData.Gear == "3" ? "FunctionIcon/Electrical/Fan/HeightGearSelect.png" : "FunctionIcon/Electrical/Fan/HeightGear.png";
menuContr.AddRowMenu(Language.StringByID(StringId.HeightGear), iconPath, this.airCleanerData.Gear == "3", () =>
{
frameBack.Close();
//发送风速命令
this.SendFanSpeedComand("3");
});
}
#endregion
#region ■ 显示定时界面_______________________
///
/// 显示定时界面
///
private void ShowTimingSelectView()
{
var listText = new List();
listText.Add(Language.StringByID(StringId.CancelTiming));
listText.Add("1" + Language.StringByID(StringId.Hour1));
listText.Add("2" + Language.StringByID(StringId.Hour1));
listText.Add("4" + Language.StringByID(StringId.Hour1));
listText.Add("8" + Language.StringByID(StringId.Hour1));
//默认选择
int defultIndex = this.airCleanerData.Timing == string.Empty ? -1 : Convert.ToInt32(this.airCleanerData.Timing);
if (defultIndex == 0) { defultIndex = -1; }
var contr = new BottomItemSelectControl(5, Language.StringByID(StringId.TimingSetting));
contr.AddRowMenu(listText, new List { defultIndex });
contr.FinishOnlyEvent += (div, selectIndex) =>
{
if (div == 1)
{
if (selectIndex == 0)
{
//发送定时命令
this.SendTimingComand("cancel");
}
else
{
//发送定时命令
this.SendTimingComand(selectIndex.ToString());
}
}
};
}
#endregion
#region ■ 显示模式界面_______________________
///
/// 显示模式界面
///
private void ShowModeSelectView()
{
//整个灰色界面
var frameBack = new Dialog();
var dialogBody = new NormalFrameLayout();
frameBack.AddChidren(dialogBody);
dialogBody.ButtonClickEvent = (sender, e) =>
{
frameBack.Close();
};
frameBack.Show();
//菜单控件
var menuContr = new DialogTitleMenuControl(4, Language.StringByID(StringId.ChooseMode));
menuContr.X = Application.GetRealWidth(210);
menuContr.Y = Application.GetRealHeight(197);
menuContr.Width = Application.GetRealWidth(160);
menuContr.Height = Application.GetRealHeight(243);
dialogBody.AddChidren(menuContr);
//自动模式
var iconPath = this.airCleanerData.Mode == "auto" ? "FunctionIcon/Electrical/Fan/AutoModeSelect.png" : "FunctionIcon/Electrical/Fan/AutoMode.png";
menuContr.AddRowMenu(Language.StringByID(StringId.AutoMode), iconPath, this.airCleanerData.Mode == "auto", () =>
{
frameBack.Close();
//发送模式命令
this.SendModeComand("auto");
});
//手动模式
iconPath = this.airCleanerData.Mode == "manual" ? "FunctionIcon/Electrical/Fan/HandModeSelect.png" : "FunctionIcon/Electrical/Fan/HandMode.png";
menuContr.AddRowMenu(Language.StringByID(StringId.HandMode), iconPath, this.airCleanerData.Mode == "manual", () =>
{
frameBack.Close();
//发送模式命令
this.SendModeComand("manual");
});
//强劲模式
iconPath = this.airCleanerData.Mode == "strong" ? "FunctionIcon/Electrical/Fan/ComfortableModeSelect.png" : "FunctionIcon/Electrical/Fan/ComfortableMode.png";
menuContr.AddRowMenu(Language.StringByID(StringId.StrongMode), iconPath, this.airCleanerData.Mode == "strong", () =>
{
frameBack.Close();
//发送模式命令
this.SendModeComand("strong");
});
//睡眠模式
iconPath = this.airCleanerData.Mode == "sleep" ? "FunctionIcon/Electrical/Fan/SleepModeSelect.png" : "FunctionIcon/Electrical/Fan/SleepMode.png";
menuContr.AddRowMenu(Language.StringByID(StringId.SleepMode), iconPath, this.airCleanerData.Mode == "sleep", () =>
{
frameBack.Close();
//发送模式命令
this.SendModeComand("sleep");
});
}
#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 ■ 发送各种命令_______________________
///
/// 发送模式命令
///
/// auto:自动 sleep:睡眠 manual:手动 strong:强烈
private void SendModeComand(string value)
{
this.btnMode.CanClick = false;
HdlThreadLogic.Current.RunThread(() =>
{
var dic = new Dictionary();
dic.Add("mode", value);
Control.Ins.SendWriteCommand(this.device, dic, true);
HdlThreadLogic.Current.RunMain(() =>
{
this.btnMode.CanClick = true;
});
});
}
///
/// 发送定时命令
///
/// canel:取消 1:1小时 2:2小时 3:4小时 4:8小时
private void SendTimingComand(string value)
{
this.btnTime.CanClick = false;
HdlThreadLogic.Current.RunThread(() =>
{
var dic = new Dictionary();
dic.Add("countdown", value);
Control.Ins.SendWriteCommand(this.device, dic, true);
HdlThreadLogic.Current.RunMain(() =>
{
this.btnTime.CanClick = true;
});
});
}
///
/// 发送风速命令
///
/// 1:低档 2:中档 3:高档
private void SendFanSpeedComand(string value)
{
this.btnFan.CanClick = false;
HdlThreadLogic.Current.RunThread(() =>
{
var dic = new Dictionary();
dic.Add("speed", value);
Control.Ins.SendWriteCommand(this.device, dic, true);
HdlThreadLogic.Current.RunMain(() =>
{
this.btnFan.CanClick = true;
});
});
}
///
/// 发送开关命令
///
private void SendSwitchComand()
{
this.btnPictrue.CanClick = false;
this.btnSwitch.CanClick = false;
//其他三个按钮的点击也要控制
this.btnFan.CanClick = this.btnSwitch.IsSelected;
this.btnMode.CanClick = this.btnSwitch.IsSelected;
this.btnTime.CanClick = this.btnSwitch.IsSelected;
string statu = this.btnSwitch.IsSelected == true ? "off" : "on";
HdlThreadLogic.Current.RunThread(() =>
{
var dic = new Dictionary();
dic.Add(FunctionAttributeKey.OnOff, statu);
Control.Ins.SendWriteCommand(this.device, dic, true);
HdlThreadLogic.Current.RunMain(() =>
{
this.btnPictrue.CanClick = true;
this.btnSwitch.CanClick = true;
});
});
}
///
/// 发送使能命令
///
private void SendEnableComand(MostRightIconControl btnSwitch, string sendKey, string value)
{
if (btnSwitch != null)
{
btnSwitch.CanClick = false;
}
HdlThreadLogic.Current.RunThread(() =>
{
var dic = new Dictionary();
dic.Add(sendKey, value);
Control.Ins.SendWriteCommand(this.device, dic, true);
if (btnSwitch == null) { return; }
HdlThreadLogic.Current.RunMain(() =>
{
btnSwitch.CanClick = true;
});
});
}
#endregion
#region ■ 刷新界面状态_______________________
///
/// 刷新界面状态
///
private void RefreshFormStatu()
{
//=======模式=======
//强劲模式
if (this.airCleanerData.Mode == "strong")
{
if (this.btnModeView.TextID != StringId.StrongMode)
{
//相同不变更
this.btnMode.UnSelectedImagePath = "FunctionIcon/Electrical/Fan/ComfortableModeSelect.png";
this.btnModeView.TextID = StringId.StrongMode;
}
}
//睡眠模式
else if (this.airCleanerData.Mode == "sleep")
{
if (this.btnModeView.TextID != StringId.SleepMode)
{
//相同不变更
this.btnMode.UnSelectedImagePath = "FunctionIcon/Electrical/Fan/SleepModeSelect.png";
this.btnModeView.TextID = StringId.SleepMode;
}
}
//手动模式
else if (this.airCleanerData.Mode == "manual")
{
if (this.btnModeView.TextID != StringId.HandMode)
{
//相同不变更
this.btnMode.UnSelectedImagePath = "FunctionIcon/Electrical/Fan/HandModeSelect.png";
this.btnModeView.TextID = StringId.HandMode;
}
}
//自动模式
else
{
if (this.btnModeView.TextID != StringId.AutoMode)
{
//相同不变更
this.btnMode.UnSelectedImagePath = "FunctionIcon/Electrical/Fan/AutoModeSelect.png";
this.btnModeView.TextID = StringId.AutoMode;
}
}
//开关
if (this.btnSwitch.IsSelected != this.airCleanerData.Open)
{
//相同不变更
this.btnSwitch.IsSelected = this.airCleanerData.Open;
this.btnPictrue.IsSelected = this.airCleanerData.Open;
//其他三个按钮的点击也要控制
this.btnFan.CanClick = this.airCleanerData.Open;
this.btnMode.CanClick = this.airCleanerData.Open;
this.btnTime.CanClick = this.airCleanerData.Open;
}
//=====风速=====
//高档
if (airCleanerData.Gear == "3")
{
if (this.btnFanView.TextID != StringId.HeightGear)
{
//相同不变更
this.btnFan.UnSelectedImagePath = "FunctionIcon/Electrical/Fan/HeightGearSelect.png";
this.btnFanView.TextID = StringId.HeightGear;
}
}
//中档
else if (airCleanerData.Gear == "2")
{
if (this.btnFanView.TextID != StringId.MidGear)
{
//相同不变更
this.btnFan.UnSelectedImagePath = "FunctionIcon/Electrical/Fan/MidGearSelect.png";
this.btnFanView.TextID = StringId.MidGear;
}
}
//低档
else
{
if (this.btnFanView.TextID != StringId.LowGear)
{
//相同不变更
this.btnFan.UnSelectedImagePath = "FunctionIcon/Electrical/Fan/LowGearSelect.png";
this.btnFanView.TextID = StringId.LowGear;
}
}
//定时
if (airCleanerData.Timing == "1")
{
btnTimeView.Text = "1" + Language.StringByID(StringId.Hour1);
}
else if (airCleanerData.Timing == "2")
{
btnTimeView.Text = "2" + Language.StringByID(StringId.Hour1);
}
else if (airCleanerData.Timing == "3")
{
btnTimeView.Text = "4" + Language.StringByID(StringId.Hour1);
}
else if (airCleanerData.Timing == "4")
{
btnTimeView.Text = "8" + Language.StringByID(StringId.Hour1);
}
else
{
btnTimeView.Text = Language.StringByID(StringId.Timing);
}
//滤芯使用
this.btnUsePersent.Text = Language.StringByID(StringId.UseOfFilterElement) + airCleanerData.FilterPersent + "%";
//PM2.5
this.btnPm25.Text = airCleanerData.PM25Value.ToString();
//童锁
if (this.btnLockSwitch.IsSelected != this.airCleanerData.Lock)
{
this.btnLockSwitch.IsSelected = this.airCleanerData.Lock;
}
//负离子
if (this.btnAnionSwitch.IsSelected != this.airCleanerData.Anion)
{
this.btnAnionSwitch.IsSelected = this.airCleanerData.Anion;
}
//滤芯复位
//if (this.btnResetSwitch.IsSelected != this.airCleanerData.FilterReset)
//{
// this.btnResetSwitch.IsSelected = this.airCleanerData.FilterReset;
//}
}
#endregion
#region ■ 一般方法___________________________
///
/// 刷新当前设备的状态缓存
///
private void RefreshNowDeviceStatuMemory(Function i_LocalDevice)
{
for (int i = 0; i < i_LocalDevice.attributes.Count; i++)
{
var data = i_LocalDevice.attributes[i];
//模式
if (data.key == "mode") { this.airCleanerData.Mode = data.state; }
//风速档位
else if (data.key == "speed") { this.airCleanerData.Gear = data.state; }
//开关
else if (data.key == "on_off") { this.airCleanerData.Open = data.state.ToLower() == "on"; }
//童锁
else if (data.key == "lock") { this.airCleanerData.Lock = data.state.ToLower() == "true"; }
//滤芯复位
else if (data.key == "filter_reset") { this.airCleanerData.FilterReset = data.state.ToLower() == "true"; }
//负离子
else if (data.key == "anion") { this.airCleanerData.Anion = data.state.ToLower() == "true"; }
//定时
else if (data.key == "countdown")
{
this.airCleanerData.Timing = data.state;
if (this.airCleanerData.Timing == "cancel")
{
this.airCleanerData.Timing = "0";
}
}
//空气质量
else if (data.key == "pm25")
{
var value = data.state;
if (value != string.Empty)
{
this.airCleanerData.PM25Value = Convert.ToInt32(value);
}
}
//滤芯使用率
else if (data.key == "filter")
{
var value = data.state;
if (value != string.Empty)
{
this.airCleanerData.FilterPersent = Convert.ToInt32(value);
}
}
}
}
#endregion
#region ■ 结构体_____________________________
///
/// 空气净化器的数据
///
private class AirCleanerData
{
///
/// 是否打开
///
public bool Open = true;
///
/// 档位 1:低档 2:中档 3:高档
///
public string Gear = "0";
///
/// auto:自动 sleep:睡眠 manual:手动 strong:强烈
///
public string Mode = string.Empty;
///
/// cancel:取消 1:1小时 2:2小时 3:4小时 4:8小时
///
public string Timing = "0";
///
/// 童锁
///
public bool Lock = false;
///
/// 滤芯复位
///
public bool FilterReset = false;
///
/// 负离子
///
public bool Anion = false;
///
/// PM2.5的值
///
public int PM25Value = 0;
///
/// 滤芯使用率 0-100
///
public int FilterPersent = 0;
}
#endregion
}
}