From c047239d340038cea872bae276e713ef866c0a34 Mon Sep 17 00:00:00 2001 From: JLChen <551775569@qq.com> Date: 星期二, 02 三月 2021 13:22:21 +0800 Subject: [PATCH] Merge branch 'NewFilePath' into CJL --- HDL_ON/UI/UI2/FuntionControlView/Electrical/ClothesHangerPage.cs | 464 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 459 insertions(+), 5 deletions(-) diff --git a/HDL_ON/UI/UI2/FuntionControlView/Electrical/ClothesHangerPage.cs b/HDL_ON/UI/UI2/FuntionControlView/Electrical/ClothesHangerPage.cs index 96b2b0f..3e848e6 100644 --- a/HDL_ON/UI/UI2/FuntionControlView/Electrical/ClothesHangerPage.cs +++ b/HDL_ON/UI/UI2/FuntionControlView/Electrical/ClothesHangerPage.cs @@ -1,21 +1,475 @@ -锘縰sing System; -using Shared; +锘縰sing Shared; +using HDL_ON.Stan; using HDL_ON.UI.CSS; +using HDL_ON.Entity; +using System.Collections.Generic; +using System; +using HDL_ON.DriverLayer; namespace HDL_ON.UI { /// <summary> /// 鏅捐。鏋剁晫闈� /// </summary> - public class ClothesHangerPage : FrameLayout + public class ClothesHangerPage : DeviceFunctionCardCommonForm { - public ClothesHangerPage() + #region 鈻� 鍙橀噺澹版槑___________________________ + + /// <summary> + /// 鍥炬爣 + /// </summary> + private Button btnIcon = null; + /// <summary> + /// 涓婂崌 + /// </summary> + Button btnUp; + /// <summary> + /// 鍋滄 + /// </summary> + Button btnStop; + /// <summary> + /// 涓嬮檷 + /// </summary> + Button btnDown; + /// <summary> + /// 鐑樺共鎺т欢 + /// </summary> + ClothesHangerControl hotDryView; + /// <summary> + /// 椋庡共鎺т欢 + /// </summary> + ClothesHangerControl windDryView; + /// <summary> + /// 娑堟瘨鎺т欢 + /// </summary> + ClothesHangerControl disinfectView; + /// <summary> + /// 鐓ф槑鎺т欢 + /// </summary> + ClothesHangerControl lightingView; + + + #endregion + + #region 鈻� 鍒濆鍖朹____________________________ + + /// <summary> + /// 鍒濆鍖栫櫧鑹插尯鍩熺殑鍐呭 + /// </summary> + 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(); } - public void LoadPage() + /// <summary> + /// 鍒濆鍖栫涓�涓储寮曢〉鐨勫唴瀹� + /// </summary> + 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<string>() { + FunctionAttributeKey.HotDry, + FunctionAttributeKey.WindDry, + FunctionAttributeKey.Disinfect, + FunctionAttributeKey.OnOff + }; + + int index = 0; + List<string> attrs = device.GetAttributes(); + + 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(304); + hotDryView.Width = Application.GetRealWidth(96); + hotDryView.Height = Application.GetRealHeight(74);//28 29 14 3 + if (attrs.Contains(menu[0])) + { + FrameWhiteCentet1.AddChidren(hotDryView); + + EventHandler<MouseEventArgs> eventHandler = (sender, e) => { + device.SetAttrState(FunctionAttributeKey.HotDry, "true"); + Dictionary<string, string> d = new Dictionary<string, string>(); + d.Add(FunctionAttributeKey.HotDry, "true"); + Control.Ins.SendWriteCommand(device, d); + }; + hotDryView.SetThouchEvent(eventHandler); + + index++; + } + + 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(304); + windDryView.Width = Application.GetRealWidth(96); + windDryView.Height = Application.GetRealHeight(74); + if (attrs.Contains(menu[1])) + { + if(index == 1) + { + windDryView.Gravity = Gravity.CenterHorizontal; + } + FrameWhiteCentet1.AddChidren(windDryView); + + EventHandler<MouseEventArgs> eventHandler = (sender, e) => { + device.SetAttrState(FunctionAttributeKey.WindDry, "true"); + Dictionary<string, string> d = new Dictionary<string, string>(); + d.Add(FunctionAttributeKey.WindDry, "true"); + Control.Ins.SendWriteCommand(device, d); + }; + windDryView.SetThouchEvent(eventHandler); + + index++; + } + + + + disinfectView = new ClothesHangerControl( + "FunctionIcon/Electrical/ClothesHanger/ClothesHangerDisinfectIcon.png", + "FunctionIcon/Electrical/ClothesHanger/ClothesHangerDisinfectIconOn.png", + Language.StringByID(StringId.Disinfect), + device.GetAttrState(FunctionAttributeKey.DisinfectTimeLeft)); + disinfectView.Y = Application.GetRealHeight(304); + disinfectView.Width = Application.GetRealWidth(96); + disinfectView.Height = Application.GetRealHeight(74); + if (attrs.Contains(menu[2])) + { + if(index == 1) + { + disinfectView.Gravity = Gravity.CenterHorizontal; + } + else if (index == 2) + { + disinfectView.X = Application.GetRealWidth(266 - 33); + } + FrameWhiteCentet1.AddChidren(disinfectView); + + EventHandler<MouseEventArgs> eventHandler = (sender, e) => { + device.SetAttrState(FunctionAttributeKey.Disinfect, "true"); + Dictionary<string, string> d = new Dictionary<string, string>(); + d.Add(FunctionAttributeKey.Disinfect, "true"); + Control.Ins.SendWriteCommand(device, d); + }; + disinfectView.SetThouchEvent(eventHandler); + + index++; + } + + 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])) + { + if(index >2) + { + lightingView.Y = Application.GetRealHeight(409); + }else + { + lightingView.Y = Application.GetRealHeight(304); + if (index == 1) + { + lightingView.Gravity = Gravity.CenterHorizontal; + } + else if (index == 2) + { + lightingView.X = Application.GetRealWidth(266 - 33); + } + } + FrameWhiteCentet1.AddChidren(lightingView); + + EventHandler<MouseEventArgs> eventHandler = (sender, e) => { + string onoff = lightingView.Lighting ? "off" : "on"; + device.SetAttrState(FunctionAttributeKey.OnOff, onoff); + Dictionary<string, string> d = new Dictionary<string, string>(); + d.Add(FunctionAttributeKey.OnOff, onoff); + Control.Ins.SendWriteCommand(device, d); + }; + lightingView.SetThouchEvent(eventHandler); + + index++; + } + + #endregion } + #endregion + + #region 鈻� 璁惧鐘舵�佸弽棣坃______________________ + + /// <summary> + /// 璁惧鐘舵�佸弽棣� + /// </summary> + /// <param name="i_LocalDevice"></param> + 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 鈻� 鍒锋柊鐣岄潰鐘舵�乢______________________ + + /// <summary> + /// 鍒锋柊鐣岄潰鐘舵�� + /// </summary> + private void RefreshFormStatu() + { + Application.RunOnMainThread(() => { + btnIcon.IsSelected = true; + #region 鐐逛寒鏂囨湰 + var hotDryTemp = device.status.Find((sta) => sta.key == FunctionAttributeKey.HotDry); + if (hotDryTemp != null) + { + hotDryView.SetViewStatus(hotDryTemp.value == "true"); + } + var windDryTemp = device.status.Find((sta) => sta.key == FunctionAttributeKey.WindDry); + if (windDryTemp != null) + { + windDryView.SetViewStatus(windDryTemp.value == "true"); + } + var disinfectTemp = device.status.Find((sta) => sta.key == FunctionAttributeKey.Disinfect); + if (disinfectTemp != null) + { + disinfectView.SetViewStatus(disinfectTemp.value == "true"); + } + var lightTemp = device.status.Find((sta) => sta.key == FunctionAttributeKey.OnOff); + if (lightTemp != null) + { + lightingView.SetViewStatus(lightTemp.value == "on"); + } + #endregion + + #region 淇敼鏃堕棿 + var hotDryTimeLeftTemp = device.status.Find((sta) => sta.key == FunctionAttributeKey.HotDryTimeLeft); + if (hotDryTimeLeftTemp != null) + { + hotDryView.ChangeTime(hotDryTimeLeftTemp.value); + } + var windDryTimeLeftTemp = device.status.Find((sta) => sta.key == FunctionAttributeKey.WindDryTimeLeft); + if (windDryTimeLeftTemp != null) + { + windDryView.ChangeTime(windDryTimeLeftTemp.value); + } + var disinfectTimeLeftTemp = device.status.Find((sta) => sta.key == FunctionAttributeKey.DisinfectTimeLeft); + if (disinfectTimeLeftTemp != null) + { + disinfectView.ChangeTime(disinfectTimeLeftTemp.value); + } + #endregion + + + }); + } + + #endregion + + #region 鈻� 涓�鑸柟娉昣__________________________ + + /// <summary> + /// 鍒锋柊褰撳墠璁惧鐨勭姸鎬佺紦瀛� + /// </summary> + 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; + /// <summary> + /// 鎺т欢鏄惁鐐逛寒 + /// </summary> + public bool Lighting = false; + + 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, + Height = Application.GetRealHeight(42), + TextColor = CSS_Color.TextualColor, + SelectedTextColor = CSS_Color.MainColor, + TextSize = CSS_FontSize.PromptFontSize_FirstLevel, + }; + this.AddChidren(btnTitle); + + btnTime = new Button() + { + Gravity = Gravity.CenterHorizontal, + Y = btnTitle.Bottom, + Height = Application.GetRealHeight(32), + Text = time, + TextColor = 0x00000000, + SelectedTextColor = CSS_Color.MainColor, + TextSize = CSS_FontSize.PromptFontSize_SecondaryLevel, + }; + this.AddChidren(btnTime); + } + /// <summary> + /// 淇敼鏄剧ず鏃堕棿 + /// </summary> + /// <param name="newTime"></param> + public void ChangeTime (string newTime) + { + if(newTime == "0") + { + newTime = ""; + } + + int time = 0; + int.TryParse(newTime, out time); + time = time * 60; + + if (countdownThread == null) + { + countdownThread = new System.Threading.Thread(() => { + while(true) + { + if(time>1) + { + Application.RunOnMainThread(() => + { + btnTime.Text = new TimeSpan(0, 0, time).ToString(); + }); + System.Threading.Thread.Sleep(1000); + time--; + }else + { + Application.RunOnMainThread(() => + { + btnTime.Text = ""; + }); + } + } + }) { IsBackground = true }; + countdownThread.Start(); + } + } + + public void SetViewStatus(bool state) + { + btnIcon.IsSelected = btnTitle.IsSelected = btnTime.IsSelected = Lighting = state; + } + + public bool GetViewState() + { + return Lighting; + } + + /// <summary> + /// 璁剧疆鐐瑰嚮浜嬩欢 + /// </summary> + public void SetThouchEvent(EventHandler<MouseEventArgs> eventHandler) + { + btnIcon.MouseUpEventHandler = eventHandler; + btnTime.MouseUpEventHandler = eventHandler; + btnTitle.MouseUpEventHandler = eventHandler; + } + + /// <summary> + /// 鍊掕鏃剁嚎绋� + /// </summary> + System.Threading.Thread countdownThread; } } -- Gitblit v1.8.0