using System;
using HDL_ON.DriverLayer;
using HDL_ON.Entity;
using HDL_ON.UI.CSS;
using Shared;
namespace HDL_ON.UI
{
public partial class ACPage
{
static DateTime updataTime = DateTime.MinValue;
public static void UpdataStates(Function updateTemp)
{
try
{
Application.RunOnMainThread((() =>
{
if (bodyView == null)
{
return;
}
if (updataTime.AddMilliseconds(300) > DateTime.Now)
{
return;
}
AC temp = new AC();
updataTime = DateTime.Now;
bodyView.btnTemp.Text = Convert.ToDouble( updateTemp.GetAttrState(FunctionAttributeKey.SetTemp)).ToString();
bodyView.btnIndoorTemp.Text = Language.StringByID(StringId.IndoorTemp) + Convert.ToInt32(Convert.ToDouble(updateTemp.GetAttrState((string)FunctionAttributeKey.RoomTemp))) + "°C";
bodyView.btnMode.UnSelectedImagePath = temp.GetModeIconPath(updateTemp.GetAttrState(FunctionAttributeKey.Mode));
bodyView.btnWindSpeed.UnSelectedImagePath = temp.GetFanIconPath(updateTemp.GetAttrState(FunctionAttributeKey.FanSpeed));
bodyView.arcBar.Progress = Convert.ToInt32(Convert.ToDouble(updateTemp.GetAttrState(FunctionAttributeKey.SetTemp)));
if (updateTemp.trait_on_off.curValue.ToString() == "on")
{
bodyView.arcBar.IsOffline = false;
bodyView.btnSwitch.IsSelected = true;
bodyView.arcBar.ThumbImagePath = "FunctionIcon/AC/DiyThumbIconOn.png";
if (updateTemp.GetAttrState((string)FunctionAttributeKey.Mode) == "fan")
{
bodyView.arcBar.IsClickable = false;
}
else
{
bodyView.arcBar.IsClickable = true;
}
}
else
{
bodyView.arcBar.IsOffline = true;
bodyView.btnSwitch.IsSelected = false;
bodyView.arcBar.IsClickable = false;
bodyView.arcBar.ThumbImagePath = "FunctionIcon/AC/DiyThumbIcon.png";
}
}));
}
catch (Exception ex)
{
MainPage.Log($"acpage updata error {ex.Message}");
}
}
void LoadEventList()
{
LoadCollectionEvent();
LoadEvent_AcStatesChange();
LoadEvent_TempChange();
//回退刷新信息事件
actionRefresh = () =>
{
btnFunctionName.Text = btnFunctionName_Out.Text = function.name;
btnFromFloor_Out.Text = btnFromFoorAndRoom.Text = function.GetRoomListName();
};
}
///
/// 收藏功能按钮事件
///
void LoadCollectionEvent()
{
btnCollection.MouseUpEventHandler += (sender, e) =>
{
btnCollection.IsSelected = function.collect = btnCollection_Out.IsSelected = !btnCollection.IsSelected;
function.CollectFunction();
};
}
///
/// 温度改变模式
///
void LoadEvent_TempChange()
{
btnMinus.MouseUpEventHandler = (sender, e) =>
{
if (function.trait_on_off.curValue.ToString() == "off" || function.GetAttrState(FunctionAttributeKey.Mode) == "fan")
{
return;
}
var temp = (int)Convert.ToDouble(function.GetAttrState(FunctionAttributeKey.SetTemp));
if (temp <= function.GetAttribute(FunctionAttributeKey.Mode).min)
{
return;
}
temp--;
arcBar.Progress = temp;
btnTemp.Text = temp.ToString();
function.SetAttrState(FunctionAttributeKey.SetTemp,temp.ToString());
//Control.Send(CommandType_A.write, function);
System.Collections.Generic.Dictionary d = new System.Collections.Generic.Dictionary();
d.Add(FunctionAttributeKey.SetTemp, temp.ToString());
Control.Ins.SendWriteCommand(function, d);
};
btnPlus.MouseUpEventHandler = (sender, e) =>
{
if (function.trait_on_off.curValue.ToString() == "off" || function.GetAttrState(FunctionAttributeKey.Mode) == "fan")
{
return;
}
var temp = (int)Convert.ToDouble(function.GetAttrState(FunctionAttributeKey.SetTemp));
if (temp >= function.GetAttribute(FunctionAttributeKey.SetTemp).max)
{
return;
}
temp++;
arcBar.Progress = temp;
btnTemp.Text = temp.ToString();
function.SetAttrState(FunctionAttributeKey.SetTemp, temp.ToString());
System.Collections.Generic.Dictionary d = new System.Collections.Generic.Dictionary();
d.Add(FunctionAttributeKey.SetTemp, temp.ToString());
Control.Ins.SendWriteCommand(function, d);
//function.GetSendJObject
};
arcBar.OnStopTrackingTouchEvent = (sender, e) =>
{
function.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(function, d);
};
arcBar.OnProgressChangedEvent = (sender, e) =>
{
function.SetAttrState(FunctionAttributeKey.SetTemp, e.ToString());
btnTemp.Text = e.ToString();
};
}
///
/// 控制模式事件
///
void LoadEvent_AcStatesChange()
{
btnMode.MouseUpEventHandler = (sender, e) =>
{
if (function.trait_on_off.curValue.ToString() == "off")
{
return;
}
LoadDiv_ChangeModeView();
};
btnWindSpeed.MouseUpEventHandler = (sender, e) =>
{
if (function.trait_on_off.curValue.ToString() == "off")
{
return;
}
LoadDiv_ChangeFanView();
};
btnSwitch.MouseUpEventHandler = (sender, e) =>
{
btnSwitch.IsSelected = !btnSwitch.IsSelected;
function.trait_on_off.curValue = btnSwitch.IsSelected ? "on" : "off";
if (function.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, function.trait_on_off.curValue.ToString());
Control.Ins.SendWriteCommand(function, d);
};
}
///
/// 加载模式改变事件
///
void LoadEvent_ChangeMode(Dialog dialog, FrameLayout dialogView, Button btnModeIcon, Button btnModeText, string curMode)
{
EventHandler eventHandler = (sender, e) =>
{
dialog.Close();
};
EventHandler eventHandler1 = (sender, e) =>
{
btnModeIcon.IsSelected = btnModeText.IsSelected = true;
function.SetAttrState(FunctionAttributeKey.Mode, curMode);
btnMode.UnSelectedImagePath = acTemp.GetModeIconPath(function.GetAttrState(FunctionAttributeKey.Mode));
System.Collections.Generic.Dictionary d = new System.Collections.Generic.Dictionary();
btnMode.UnSelectedImagePath = btnModeIcon.UnSelectedImagePath;
d.Add(FunctionAttributeKey.Mode, curMode);
Control.Ins.SendWriteCommand(function, d);
dialog.Close();
if (function.GetAttrState(FunctionAttributeKey.Mode) == "fan")
{
bodyView.arcBar.IsClickable = false;
}
else
{
bodyView.arcBar.IsClickable = true;
}
};
btnModeIcon.MouseUpEventHandler = eventHandler1;
btnModeText.MouseUpEventHandler = eventHandler1;
dialogView.MouseUpEventHandler = eventHandler;
}
///
/// 加载风速改变事件
///
void LoadEvent_ChangeFan(Dialog dialog, FrameLayout dialogView, Button btnFanIcon, Button btnFanText, string curFan)
{
EventHandler closeDialogEvent = (sender, e) =>
{
dialog.Close();
};
EventHandler eventHandler1 = (sender, e) =>
{
btnFanIcon.IsSelected = btnFanText.IsSelected = true;
function.SetAttrState(FunctionAttributeKey.FanSpeed, curFan);
btnWindSpeed.UnSelectedImagePath = acTemp.GetFanIconPath(function.GetAttrState(FunctionAttributeKey.FanSpeed));
System.Collections.Generic.Dictionary d = new System.Collections.Generic.Dictionary();
d.Add(FunctionAttributeKey.FanSpeed, curFan);
Control.Ins.SendWriteCommand(function, d);
btnWindSpeed.UnSelectedImagePath = btnFanIcon.UnSelectedImagePath;
dialog.Close();
};
btnFanIcon.MouseUpEventHandler = eventHandler1;
btnFanText.MouseUpEventHandler = eventHandler1;
dialogView.MouseUpEventHandler = closeDialogEvent;
}
}
}