using Shared; using HDL_ON.Stan; using HDL_ON.UI.CSS; using HDL_ON.Entity; using System.Collections.Generic; namespace HDL_ON.UI { /// /// 晾衣架界面 /// public class ClothesHangerPage : DeviceFunctionCardCommonForm { #region ■ 变量声明___________________________ /// /// 图标 /// private Button btnIcon = null; /// /// 上升 /// Button btnUp; /// /// 停止 /// Button btnStop; /// /// 下降 /// Button btnDown; /// /// 文本控件 /// private NormalViewControl btnSuctionView = null; #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(() => { DriverLayer.Control.Ins.SendReadCommand(device); }) { IsBackground = true }.Start(); } /// /// 初始化第一个索引页的内容 /// private void InitFrameWhiteContent1() { btnIcon = new Button() { Gravity = Gravity.CenterHorizontal, Y = Application.GetRealHeight(85), Width = Application.GetRealWidth(195), Height = Application.GetRealHeight(121), UnSelectedImagePath = "FunctionIcon/Electrical/ClothesHanger/ClothesHangerBgIcon.png", SelectedImagePath = "FunctionIcon/Electrical/ClothesHanger/ClothesHangerBgIconOn.png", }; FrameWhiteCentet1.AddChidren(btnIcon); #region 上升 停止 下降 btnUp = new Button() { X = Application.GetRealWidth(42), Y = Application.GetRealHeight(236), Width = Application.GetRealWidth(28), Height = Application.GetRealWidth(28), UnSelectedImagePath = "FunctionIcon/Electrical/ClothesHanger/ClothesHangerUpIcon.png", SelectedImagePath = "FunctionIcon/Electrical/ClothesHanger/ClothesHangerUpIconOn.png", }; FrameWhiteCentet1.AddChidren(btnUp); btnStop = new Button() { Gravity = Gravity.CenterHorizontal, Y = Application.GetRealHeight(236), Width = Application.GetRealWidth(28), Height = Application.GetRealWidth(28), UnSelectedImagePath = "FunctionIcon/Electrical/ClothesHanger/ClothesHangerStopIcon.png", SelectedImagePath = "FunctionIcon/Electrical/ClothesHanger/ClothesHangerStopIconOn.png", }; FrameWhiteCentet1.AddChidren(btnStop); btnDown = new Button() { X = Application.GetRealWidth(257), Y = Application.GetRealHeight(236), Width = Application.GetRealWidth(28), Height = Application.GetRealWidth(28), UnSelectedImagePath = "FunctionIcon/Electrical/ClothesHanger/ClothesHangerDownIcon.png", SelectedImagePath = "FunctionIcon/Electrical/ClothesHanger/ClothesHangerDownIconOn.png", }; FrameWhiteCentet1.AddChidren(btnDown); #endregion #region 菜单 var menu = new List() { FunctionAttributeKey.HotDry, FunctionAttributeKey.WindDry, FunctionAttributeKey.Disinfect, FunctionAttributeKey.OnOff }; int index = 0; List attrs = device.GetAttributes(); ClothesHangerControl hotDryView = new ClothesHangerControl( "FunctionIcon/Electrical/ClothesHanger/ClothesHangerHotDryIcon.png", "FunctionIcon/Electrical/ClothesHanger/ClothesHangerHotDryIconOn.png", Language.StringByID(StringId.HotDry), device.GetAttrState(FunctionAttributeKey.HotDryTimeLeft)); hotDryView.X = 0; hotDryView.Y = Application.GetRealHeight(288); hotDryView.Width = Application.GetRealWidth(96); hotDryView.Height = Application.GetRealHeight(74);//28 29 14 3 if (attrs.Contains(menu[0]) || true) { FrameWhiteCentet1.AddChidren(hotDryView); index++; } ClothesHangerControl windDryView = new ClothesHangerControl( "FunctionIcon/Electrical/ClothesHanger/ClothesHangerWindDryIcon.png", "FunctionIcon/Electrical/ClothesHanger/ClothesHangerWindDryIconOn.png", Language.StringByID(StringId.WindDry), device.GetAttrState(FunctionAttributeKey.WindDryTimeLeft)); windDryView.Y = Application.GetRealHeight(288); windDryView.Width = Application.GetRealWidth(96); windDryView.Height = Application.GetRealHeight(74); if (attrs.Contains(menu[1]) || true) { if(index == 1) { windDryView.Gravity = Gravity.CenterHorizontal; } FrameWhiteCentet1.AddChidren(windDryView); index++; } ClothesHangerControl disinfectDryView = new ClothesHangerControl( "FunctionIcon/Electrical/ClothesHanger/ClothesHangerDisinfectIcon.png", "FunctionIcon/Electrical/ClothesHanger/ClothesHangerDisinfectIconOn.png", Language.StringByID(StringId.Disinfect), device.GetAttrState(FunctionAttributeKey.DisinfectTimeLeft)); disinfectDryView.Y = Application.GetRealHeight(288); disinfectDryView.Width = Application.GetRealWidth(96); disinfectDryView.Height = Application.GetRealHeight(74); if (attrs.Contains(menu[2]) || true) { if(index == 1) { disinfectDryView.Gravity = Gravity.CenterHorizontal; } else if (index == 2) { disinfectDryView.X = Application.GetRealWidth(266 - 33); } FrameWhiteCentet1.AddChidren(disinfectDryView); index++; } ClothesHangerControl lightingView = new ClothesHangerControl( "FunctionIcon/Electrical/ClothesHanger/ClothesHangerLightIcon.png", "FunctionIcon/Electrical/ClothesHanger/ClothesHangerLightIconOn.png", Language.StringByID(StringId.Lighting), ""); lightingView.Width = Application.GetRealWidth(96); lightingView.Height = Application.GetRealHeight(74); if (attrs.Contains(menu[3]) || true) { if(index >2) { lightingView.Y = Application.GetRealHeight(375); }else { if (index == 1) { lightingView.Gravity = Gravity.CenterHorizontal; } else if (index == 2) { lightingView.X = Application.GetRealWidth(266 - 33); } } FrameWhiteCentet1.AddChidren(lightingView); index++; } #endregion } #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 ■ 发送各种命令_______________________ #endregion #region ■ 刷新界面状态_______________________ /// /// 刷新界面状态 /// private void RefreshFormStatu() { Application.RunOnMainThread(() => { var temp = device.status.Find((sta) => sta.key == FunctionAttributeKey.Status); if (temp != null) { if (temp.value == "true") { } else { } } }); } #endregion #region ■ 一般方法___________________________ /// /// 刷新当前设备的状态缓存 /// private void RefreshNowDeviceStatuMemory(Function i_LocalDevice) { foreach (var data in i_LocalDevice.status) { //开关 //if (data.key == "on_off") { this.weepRobotData.Cleaning = data.value.ToLower() == "on"; } } } #endregion } public class ClothesHangerControl : FrameLayout { private Button btnIcon; private Button btnTitle; private Button btnTime; public ClothesHangerControl(string iconPath1, string iconPath2,string title,string time) { btnIcon = new Button() { Gravity = Gravity.CenterHorizontal, Width = Application.GetRealWidth(28), Height = Application.GetRealWidth(28), UnSelectedImagePath = iconPath1, SelectedImagePath = iconPath2, }; this.AddChidren(btnIcon); btnTitle = new Button() { Gravity = Gravity.Center, Text = title, TextColor = CSS_Color.TextualColor, SelectedTextColor = CSS_Color.MainColor, TextSize = CSS_FontSize.PromptFontSize_FirstLevel, }; this.AddChidren(btnTitle); btnTime = new Button() { Gravity = Gravity.CenterHorizontal, Text = time, TextColor = CSS_Color.TextualColor, SelectedTextColor = CSS_Color.MainColor, TextSize = CSS_FontSize.PromptFontSize_SecondaryLevel, }; this.AddChidren(btnTime); } /// /// 修改显示时间 /// /// public void ChangeTime (string newTime) { btnTime.Text = newTime; } public void ChangeViewStatus(bool state) { btnIcon.IsSelected = btnTitle.IsSelected = btnTime.IsSelected = state; } public bool GetViewState() { return btnIcon.IsSelected; } } }