From efad979b6fae76fb37a4de7e94e6bac0a85cb72c Mon Sep 17 00:00:00 2001 From: JLChen <551775569@qq.com> Date: 星期二, 30 十一月 2021 13:14:28 +0800 Subject: [PATCH] 2021-11-30 1.修复乐橙Android,没调用拒接接口问题。 --- HDL_ON/UI/UI2/FuntionControlView/Electrical/ClothesHangerPage.cs | 352 ++++++++++++++++++++++++++++++++++++++++++++++++---------- 1 files changed, 289 insertions(+), 63 deletions(-) diff --git a/HDL_ON/UI/UI2/FuntionControlView/Electrical/ClothesHangerPage.cs b/HDL_ON/UI/UI2/FuntionControlView/Electrical/ClothesHangerPage.cs index 945a64c..190b378 100644 --- a/HDL_ON/UI/UI2/FuntionControlView/Electrical/ClothesHangerPage.cs +++ b/HDL_ON/UI/UI2/FuntionControlView/Electrical/ClothesHangerPage.cs @@ -3,6 +3,8 @@ using HDL_ON.UI.CSS; using HDL_ON.Entity; using System.Collections.Generic; +using System; +using HDL_ON.DriverLayer; namespace HDL_ON.UI { @@ -30,9 +32,22 @@ /// </summary> Button btnDown; /// <summary> - /// 鏂囨湰鎺т欢 + /// 鐑樺共鎺т欢 /// </summary> - private NormalViewControl btnSuctionView = null; + ClothesHangerControl hotDryView; + /// <summary> + /// 椋庡共鎺т欢 + /// </summary> + ClothesHangerControl windDryView; + /// <summary> + /// 娑堟瘨鎺т欢 + /// </summary> + ClothesHangerControl disinfectView; + /// <summary> + /// 鐓ф槑鎺т欢 + /// </summary> + ClothesHangerControl lightingView; + #endregion @@ -49,14 +64,12 @@ //鍒濆鍖栫涓�涓储寮曢〉鐨勫唴瀹� this.InitFrameWhiteContent1(); - //鍒锋柊褰撳墠璁惧鐨勭姸鎬佺紦瀛� - this.RefreshNowDeviceStatuMemory(this.device); //鍒锋柊鐣岄潰鐘舵�� this.RefreshFormStatu(); //璇诲彇鐘舵�� new System.Threading.Thread(() => { - DriverLayer.Control.Ins.SendReadCommand(device); + Control.Ins.SendReadCommand(device); }) { IsBackground = true }.Start(); } @@ -111,6 +124,62 @@ }; FrameWhiteCentet1.AddChidren(btnDown); + #region 鎺у埗 + btnUp.MouseDownEventHandler = (sender, e) => { + btnUp.IsSelected = true; + }; + btnUp.MouseUpEventHandler = (sender, e) => { + new System.Threading.Thread(() => + { + System.Threading.Thread.Sleep(2000); + Application.RunOnMainThread(() => + { + btnUp.IsSelected = false; + }); + }) + { IsBackground = true }.Start(); + Dictionary<string, string> d = new Dictionary<string, string>(); + d.Add(FunctionAttributeKey.Position, "up"); + Control.Ins.SendWriteCommand(device, d); + }; + //---- + btnStop.MouseDownEventHandler = (sender, e) => { + btnStop.IsSelected = true; + }; + btnStop.MouseUpEventHandler = (sender, e) => { + new System.Threading.Thread(() => + { + System.Threading.Thread.Sleep(2000); + Application.RunOnMainThread(() => + { + btnStop.IsSelected = false; + }); + }) + { IsBackground = true }.Start(); + Dictionary<string, string> d = new Dictionary<string, string>(); + d.Add(FunctionAttributeKey.Position, "stop"); + Control.Ins.SendWriteCommand(device, d); + }; + //----- + btnDown.MouseDownEventHandler = (sender, e) => { + btnDown.IsSelected = true; + }; + btnDown.MouseUpEventHandler = (sender, e) => { + new System.Threading.Thread(() => + { + System.Threading.Thread.Sleep(2000); + Application.RunOnMainThread(() => + { + btnDown.IsSelected = false; + }); + }) + { IsBackground = true }.Start(); + Dictionary<string, string> d = new Dictionary<string, string>(); + d.Add(FunctionAttributeKey.Position, "down"); + Control.Ins.SendWriteCommand(device, d); + }; + #endregion + #endregion #region 鑿滃崟 @@ -123,77 +192,113 @@ int index = 0; List<string> attrs = device.GetAttributes(); - ClothesHangerControl hotDryView = new 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.Y = Application.GetRealHeight(304); hotDryView.Width = Application.GetRealWidth(96); hotDryView.Height = Application.GetRealHeight(74);//28 29 14 3 - if (attrs.Contains(menu[0]) || true) + if (attrs.Contains(menu[0])) { FrameWhiteCentet1.AddChidren(hotDryView); + + EventHandler<MouseEventArgs> eventHandler = (sender, e) => + { + string onoff = hotDryView.Lighting ? "false" : "true"; + device.SetAttrState(FunctionAttributeKey.HotDry, onoff); + Dictionary<string, string> d = new Dictionary<string, string>(); + d.Add(FunctionAttributeKey.HotDry, onoff); + Control.Ins.SendWriteCommand(device, d); + }; + hotDryView.SetThouchEvent(eventHandler); + index++; } - ClothesHangerControl windDryView = new 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.Y = Application.GetRealHeight(304); windDryView.Width = Application.GetRealWidth(96); windDryView.Height = Application.GetRealHeight(74); - if (attrs.Contains(menu[1]) || true) + if (attrs.Contains(menu[1])) { - if(index == 1) + if (index == 1) { windDryView.Gravity = Gravity.CenterHorizontal; } FrameWhiteCentet1.AddChidren(windDryView); + + EventHandler<MouseEventArgs> eventHandler = (sender, e) => + { + string onoff = windDryView.Lighting ? "false" : "true"; + device.SetAttrState(FunctionAttributeKey.WindDry, onoff); + Dictionary<string, string> d = new Dictionary<string, string>(); + d.Add(FunctionAttributeKey.WindDry, onoff); + Control.Ins.SendWriteCommand(device, d); + }; + windDryView.SetThouchEvent(eventHandler); + index++; } - - ClothesHangerControl disinfectDryView = new ClothesHangerControl( + + disinfectView = 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) + disinfectView.Y = Application.GetRealHeight(304); + disinfectView.Width = Application.GetRealWidth(96); + disinfectView.Height = Application.GetRealHeight(74); + if (attrs.Contains(menu[2])) { - if(index == 1) + if (index == 1) { - disinfectDryView.Gravity = Gravity.CenterHorizontal; + disinfectView.Gravity = Gravity.CenterHorizontal; } else if (index == 2) { - disinfectDryView.X = Application.GetRealWidth(266 - 33); + disinfectView.X = Application.GetRealWidth(266 - 33); } - FrameWhiteCentet1.AddChidren(disinfectDryView); + FrameWhiteCentet1.AddChidren(disinfectView); + + EventHandler<MouseEventArgs> eventHandler = (sender, e) => + { + string onoff = disinfectView.Lighting ? "false" : "true"; + device.SetAttrState(FunctionAttributeKey.Disinfect, onoff); + Dictionary<string, string> d = new Dictionary<string, string>(); + d.Add(FunctionAttributeKey.Disinfect, onoff); + Control.Ins.SendWriteCommand(device, d); + }; + disinfectView.SetThouchEvent(eventHandler); + index++; } - ClothesHangerControl lightingView = new 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 (attrs.Contains(menu[3])) { - if(index >2) + if (index > 2) { - lightingView.Y = Application.GetRealHeight(375); - }else + lightingView.Y = Application.GetRealHeight(409); + } + else { + lightingView.Y = Application.GetRealHeight(304); if (index == 1) { lightingView.Gravity = Gravity.CenterHorizontal; @@ -204,8 +309,45 @@ } } 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 + + + #region 鏃堕棿璁剧疆 + var timeSetView = new ClothesHangerControl( + "FunctionIcon/Electrical/ClothesHanger/ClothesHangerTimeIcon.png", + "FunctionIcon/Electrical/ClothesHanger/ClothesHangerTimeIconOn.png", + Language.StringByID(StringId.Time), + ""); + timeSetView.Width = Application.GetRealWidth(96); + timeSetView.Height = Application.GetRealHeight(74); + timeSetView.Y = Application.GetRealHeight(409); + timeSetView.X = Application.GetRealWidth(266 - 33); + + + EventHandler<MouseEventArgs> eventHandler_timeSetView = (sender, e) => + { + var setTimePage = new ClothesHangerSetTimePage(device); + MainPage.BasePageView.AddChidren(setTimePage); + setTimePage.LoadPage(); + MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; + }; + timeSetView.SetThouchEvent(eventHandler_timeSetView); + + FrameWhiteCentet1.AddChidren(timeSetView); #endregion } @@ -222,8 +364,6 @@ //涓嶆槸鍚屼竴涓笢瑗� if (this.device.sid != i_LocalDevice.sid) { return; } - //鍒锋柊褰撳墠璁惧鐨勭姸鎬佺紦瀛� - this.RefreshNowDeviceStatuMemory(i_LocalDevice); //鍒锋柊鐣岄潰鐘舵�� this.RefreshFormStatu(); } @@ -241,35 +381,58 @@ /// </summary> private void RefreshFormStatu() { - Application.RunOnMainThread(() => { - var temp = device.status.Find((sta) => sta.key == FunctionAttributeKey.Status); - if (temp != null) + Application.RunOnMainThread(() => + { + btnIcon.IsSelected = true; + #region 鐐逛寒鏂囨湰 + var hotDryTemp = device.attributes.Find((sta) => sta.key == FunctionAttributeKey.HotDry); + if (hotDryTemp != null) { - if (temp.value == "true") - { - } - else - { - } + hotDryView.SetViewStatus(hotDryTemp.state == "true"); } + var windDryTemp = device.attributes.Find((sta) => sta.key == FunctionAttributeKey.WindDry); + if (windDryTemp != null) + { + windDryView.SetViewStatus(windDryTemp.state == "true"); + } + var disinfectTemp = device.attributes.Find((sta) => sta.key == FunctionAttributeKey.Disinfect); + if (disinfectTemp != null) + { + disinfectView.SetViewStatus(disinfectTemp.state == "true"); + } + var lightTemp = device.attributes.Find((sta) => sta.key == FunctionAttributeKey.OnOff); + if (lightTemp != null) + { + lightingView.SetViewStatus(lightTemp.state == "on"); + } + //MainPage.Log($"鏃堕棿鎴筹細{device.time_stamp} 鏃堕棿锛歿device.GeteTime()} 鐑樺共:{hotDryTemp.state} 椋庡共:{windDryTemp.state} 娑堟瘨:{disinfectTemp.state} 鐏厜鐘舵�侊細{lightTemp.state}"); + #endregion + + #region 淇敼鏃堕棿 + var hotDryTimeLeftTemp = device.attributes.Find((sta) => sta.key == FunctionAttributeKey.HotDryTimeLeft); + if (hotDryTimeLeftTemp != null) + { + hotDryView.ChangeTime(hotDryTimeLeftTemp.state); + } + var windDryTimeLeftTemp = device.attributes.Find((sta) => sta.key == FunctionAttributeKey.WindDryTimeLeft); + if (windDryTimeLeftTemp != null) + { + windDryView.ChangeTime(windDryTimeLeftTemp.state); + } + var disinfectTimeLeftTemp = device.attributes.Find((sta) => sta.key == FunctionAttributeKey.DisinfectTimeLeft); + if (disinfectTimeLeftTemp != null) + { + disinfectView.ChangeTime(disinfectTimeLeftTemp.state); + } + #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 } @@ -279,18 +442,25 @@ private Button btnIcon; private Button btnTitle; private Button btnTime; + /// <summary> + /// 鍊掕鏃舵椂闂� + /// </summary> + private int leftTime = 0; + /// <summary> + /// 鎺т欢鏄惁鐐逛寒 + /// </summary> + public bool Lighting = false; - public ClothesHangerControl(string iconPath1, string iconPath2,string title,string time) + + public ClothesHangerControl(string unSelectedIconPath, string selectedIconPath, string title, string time) { - - btnIcon = new Button() { Gravity = Gravity.CenterHorizontal, Width = Application.GetRealWidth(28), Height = Application.GetRealWidth(28), - UnSelectedImagePath = iconPath1, - SelectedImagePath = iconPath2, + UnSelectedImagePath = unSelectedIconPath, + SelectedImagePath = selectedIconPath, }; this.AddChidren(btnIcon); @@ -298,6 +468,7 @@ { Gravity = Gravity.Center, Text = title, + Height = Application.GetRealHeight(42), TextColor = CSS_Color.TextualColor, SelectedTextColor = CSS_Color.MainColor, TextSize = CSS_FontSize.PromptFontSize_FirstLevel, @@ -307,8 +478,10 @@ btnTime = new Button() { Gravity = Gravity.CenterHorizontal, + Y = Application.GetRealHeight(74-32), + Height = Application.GetRealHeight(32), Text = time, - TextColor = CSS_Color.TextualColor, + TextColor = 0x00000000, SelectedTextColor = CSS_Color.MainColor, TextSize = CSS_FontSize.PromptFontSize_SecondaryLevel, }; @@ -318,19 +491,72 @@ /// 淇敼鏄剧ず鏃堕棿 /// </summary> /// <param name="newTime"></param> - public void ChangeTime (string newTime) + public void ChangeTime(string newTime) { - btnTime.Text = newTime; + int.TryParse(newTime, out leftTime); + if (leftTime > 0) + { + Application.RunOnMainThread(() => + { + btnTime.Text = new TimeSpan(0, leftTime, 0).ToString().Remove(5, 3); + }); + leftTime--; + } + else if (leftTime == 0) + { + Application.RunOnMainThread(() => + { + btnTime.Text = ""; + }); + } + if (countdownThread == null) + { + countdownThread = new System.Threading.Thread(() => + { + + while (true) + { + if (leftTime > 0) + { + Application.RunOnMainThread(() => + { + btnTime.Text = new TimeSpan(0, leftTime, 0).ToString().Remove(5,3) ; + }); + leftTime--; + } + else if(leftTime == 0) + { + Application.RunOnMainThread(() => + { + btnTime.Text = ""; + }); + } + System.Threading.Thread.Sleep(60000); + } + }) + { IsBackground = true }; + countdownThread.Start(); + } } - public void ChangeViewStatus(bool state) + public void SetViewStatus(bool state) { - btnIcon.IsSelected = btnTitle.IsSelected = btnTime.IsSelected = state; + btnIcon.IsSelected = btnTitle.IsSelected = btnTime.IsSelected = Lighting = state; } - public bool GetViewState() + /// <summary> + /// 璁剧疆鐐瑰嚮浜嬩欢 + /// </summary> + public void SetThouchEvent(EventHandler<MouseEventArgs> eventHandler) { - return btnIcon.IsSelected; + btnIcon.MouseUpEventHandler = eventHandler; + btnTime.MouseUpEventHandler = eventHandler; + btnTitle.MouseUpEventHandler = eventHandler; } + + /// <summary> + /// 鍊掕鏃剁嚎绋� + /// </summary> + System.Threading.Thread countdownThread; } -} +} \ No newline at end of file -- Gitblit v1.8.0