using System;
using HDL_ON.DriverLayer;
using HDL_ON.Entity;
using HDL_ON.UI.CSS;
using Shared;
namespace HDL_ON.UI
{
public partial class FloorHeatingPage
{
public static void UpdataStates(Function updateTemp)
{
try
{
Application.RunOnMainThread(() =>
{
if (bodyView == null)
{
return;
}
if (updateTemp.sid != bodyView.function.sid)
{
return;
}
var outinTemp = Convert.ToInt32(Convert.ToDouble(updateTemp.GetAttrState(FunctionAttributeKey.SetTemp).Replace(",", ".")));
bodyView.btnTemp.Text = outinTemp.ToString();
//bodyView.btnIndoorTemp.Text = Language.StringByID(StringId.IndoorTemp) + Convert.ToInt32(Convert.ToDouble(updateTemp.GetAttrState(FunctionAttributeKey.RoomTemp).Replace(",", "."))) + "°C";
bodyView.btnIndoorTemp.Text = Language.StringByID(StringId.IndoorTempOutdoorTemp).Replace("{1}", Convert.ToInt32(Convert.ToDouble(updateTemp.GetAttrState(FunctionAttributeKey.RoomTemp).Replace(",", "."))).ToString()).Replace("{0}", MainPage.cityInfo.temperature);
bodyView.btnMode.SelectedImagePath = bodyView.fhTemp.GetModeIconPath(updateTemp.GetAttrState(FunctionAttributeKey.Mode));
bodyView.btnMode.UnSelectedImagePath = bodyView.fhTemp.GetModeIconPath(updateTemp.GetAttrState(FunctionAttributeKey.Mode), false);
bodyView.arcBar.Progress = outinTemp;
//if (updateTemp.trait_on_off.curValue.ToString() == "on")
//{
// bodyView.arcBar.ThumbImagePath = "FunctionIcon/FloorHeating/DiyThumbIconOn.png";
// bodyView.btnSwitch.IsSelected = true;
// bodyView.arcBar.IsOffline = false;
//}
//else
//{
// bodyView.arcBar.ThumbImagePath = "FunctionIcon/AC/DiyThumbIcon.png";
// bodyView.btnSwitch.IsSelected = false;
// bodyView.arcBar.IsOffline = true;
//}
if (bodyView.btnTemp.Text.Length > 2)
{
bodyView.btnTemp.TextSize = 44;
}
else
{
bodyView.btnTemp.TextSize = 56;
}
//app自己控制的不用更新,会造成跳动
if (bodyView.seltControlTemp.Contains(outinTemp.ToString()))
{
bodyView.seltControlTemp.Remove(outinTemp.ToString());
}
else
{
bodyView.arcBar.Progress = outinTemp;
}
if (updateTemp.trait_on_off.curValue.ToString() == "on")
{
bodyView.btnMode.IsSelected = true;
bodyView.arcBar.IsOffline = false;
bodyView.btnSwitch.IsSelected = true;
bodyView.arcBar.ThumbImagePath = "FunctionIcon/AC/DiyThumbIconOn.png";
if (updateTemp.GetAttrState(FunctionAttributeKey.Mode) == "fan")
{
bodyView.arcBar.IsClickable = false;
}
else
{
bodyView.arcBar.IsClickable = true;
}
}
else
{
bodyView.btnMode.IsSelected = false;
bodyView.arcBar.IsOffline = true;
bodyView.btnSwitch.IsSelected = false;
bodyView.arcBar.IsClickable = false;
bodyView.arcBar.ThumbImagePath = "FunctionIcon/AC/DiyThumbIcon.png";
}
////自动模式不允许调温度 2021-10-27 09:41:35 wxr 陈琳反馈
//if (updateTemp.GetAttrState(FunctionAttributeKey.Mode) == "auto" || updateTemp.GetAttrState(FunctionAttributeKey.Mode) == "timer")
//{
// bodyView.btnPlus.Enable = false;
// bodyView.btnMinus.Enable = false;
// bodyView.arcBar.IsClickable = false;
// bodyView.arcBar.IsOffline = true;
//}
//更新不同界面状态 2022年06月09日19:22:55 wjc 修改
bodyView.updateStatusPage();
});
}
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();
//function.SaveFunctionData(true);
};
////自动模式不允许调温度 2021-10-27 09:41:35 wxr 陈琳反馈
//if (function.GetAttrState(FunctionAttributeKey.Mode) == "auto" || function.GetAttrState(FunctionAttributeKey.Mode) == "timer")
//{
// btnPlus.Enable = false;
// btnMinus.Enable = false;
// arcBar.IsClickable = false;
// arcBar.IsOffline = true;
//}
//初始化不同界面状态 2022年06月09日19:22:55 wjc 修改
this.updateStatusPage();
}
///
/// 收藏功能按钮事件
///
void LoadCollectionEvent()
{
btnCollection.MouseUpEventHandler += (sender, e) =>
{
btnCollection.IsSelected = function.collect = btnCollection_Out.IsSelected = !btnCollection.IsSelected;
function.CollectFunction();
};
}
///
/// 温度改变模式
///
void LoadEvent_TempChange()
{
if (!function.isOnline())
{
new Tip()
{
CloseTime = 1,
Text = Language.StringByID(StringId.DeviceOfflineCannotOption),
Direction = AMPopTipDirection.None,
}.Show(MainPage.BaseView);
return;
}
btnMinus.MouseUpEventHandler = (sender, e) =>
{
if (function.trait_on_off.curValue.ToString() == "off")
{
return;
}
var temp = (int)Convert.ToDouble(function.GetAttrState(FunctionAttributeKey.SetTemp).Replace(",", "."));
if (temp <= Convert.ToInt32(function.GetAttribute(FunctionAttributeKey.SetTemp).min))
{
return;
}
temp--;
seltControlTemp.Add(temp.ToString());
arcBar.Progress = temp;
function.SetAttrState(FunctionAttributeKey.SetTemp, temp);
btnTemp.Text = temp.ToString();
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")
{
return;
}
var temp = (int)Convert.ToDouble(function.GetAttrState(FunctionAttributeKey.SetTemp).Replace(",", "."));
if (temp >= Convert.ToDouble(function.GetAttribute(FunctionAttributeKey.SetTemp).max))
{
return;
}
temp++;
seltControlTemp.Add(temp.ToString());
arcBar.Progress = temp;
btnTemp.Text = temp.ToString();
function.SetAttrState(FunctionAttributeKey.SetTemp, temp);
System.Collections.Generic.Dictionary d = new System.Collections.Generic.Dictionary();
d.Add(FunctionAttributeKey.SetTemp, temp.ToString());
Control.Ins.SendWriteCommand(function, d);
};
arcBar.OnStopTrackingTouchEvent = (sender, e) =>
{
function.SetAttrState(FunctionAttributeKey.SetTemp, arcBar.Progress);
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);
btnTemp.Text = Convert.ToDouble(function.GetAttrState(FunctionAttributeKey.SetTemp).Replace(",", ".")).ToString();
if (btnTemp.Text.Length > 2)
{
btnTemp.TextSize = 44;
}
else
{
btnTemp.TextSize = 56;
}
};
}
///
/// 控制模式事件
///
void LoadEvent_AcStatesChange()
{
btnMode.MouseUpEventHandler = (sender, e) =>
{
if (function.trait_on_off.curValue.ToString() == "off")
{
return;
}
LoadDiv_ChangeModeView();
};
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.ProgressBarColor = CSS_Color.MainColor;
arcBar.ThumbImagePath = "FunctionIcon/FloorHeating/DiyThumbIconOn.png";
btnSwitch.IsSelected = true;
arcBar.IsOffline = false;
}
else
{
//arcBar.ProgressBarColor = CSS_Color.PromptingColor2;
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 btn1, Button btn2, string curMode)
{
EventHandler eventHandler = (sender, e) =>
{
dialog.Close();
};
EventHandler eventHandler1 = (sender, e) =>
{
btn1.IsSelected = btn2.IsSelected = true;
function.SetAttrState(FunctionAttributeKey.Mode, curMode);
btnMode.UnSelectedImagePath = btn1.SelectedImagePath;
//byte pro = 6;//不处理温度显示,等待回复数据再处理
//function.Fh_Mode_Temp.TryGetValue(curMode, out pro);
//arcBar.Progress = pro;
System.Collections.Generic.Dictionary d = new System.Collections.Generic.Dictionary();
d.Add(FunctionAttributeKey.Mode, function.GetAttrState(FunctionAttributeKey.Mode));
Control.Ins.SendWriteCommand(function, d);
dialog.Close();
};
btn1.MouseUpEventHandler = eventHandler1;
btn2.MouseUpEventHandler = eventHandler1;
dialogView.MouseUpEventHandler = eventHandler;
}
///
/// 更新不同界面状态
///
private void updateStatusPage()
{
btnPlus.Enable = true;
btnMinus.Enable = true;
arcBar.IsClickable = true;
arcBar.IsOffline = false;
switch (getModeValue)
{
case "auto"://自动
case "timer"://
btnPlus.Enable = false;
btnMinus.Enable = false;
arcBar.IsClickable = false;
arcBar.IsOffline = true;
break;
}
}
///
/// 获取模式value值
///
private string getModeValue
{
get
{
return function.GetAttrState(FunctionAttributeKey.Mode);
}
}
}
}