| | |
| | | using HDL_ON.UI.CSS; |
| | | using HDL_ON.Entity; |
| | | using System.Collections.Generic; |
| | | using System; |
| | | using HDL_ON.DriverLayer; |
| | | |
| | | namespace HDL_ON.UI |
| | | { |
| | |
| | | /// </summary> |
| | | Button btnDown; |
| | | /// <summary> |
| | | /// 文本控件 |
| | | /// 烘干控件 |
| | | /// </summary> |
| | | private NormalViewControl btnSuctionView = null; |
| | | ClothesHangerControl hotDryView; |
| | | /// <summary> |
| | | /// 风干控件 |
| | | /// </summary> |
| | | ClothesHangerControl windDryView; |
| | | /// <summary> |
| | | /// 消毒控件 |
| | | /// </summary> |
| | | ClothesHangerControl disinfectView; |
| | | /// <summary> |
| | | /// 照明控件 |
| | | /// </summary> |
| | | ClothesHangerControl lightingView; |
| | | |
| | | |
| | | #endregion |
| | | |
| | |
| | | //读取状态 |
| | | new System.Threading.Thread(() => |
| | | { |
| | | DriverLayer.Control.Ins.SendReadCommand(device); |
| | | Control.Ins.SendReadCommand(device); |
| | | }) |
| | | { IsBackground = true }.Start(); |
| | | } |
| | |
| | | |
| | | 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) => { |
| | | 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++; |
| | | } |
| | | |
| | | 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) |
| | | { |
| | | 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++; |
| | | } |
| | | |
| | | |
| | | |
| | | 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) |
| | | { |
| | | 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) => { |
| | | 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++; |
| | | } |
| | | |
| | | 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) |
| | | { |
| | | lightingView.Y = Application.GetRealHeight(375); |
| | | lightingView.Y = Application.GetRealHeight(409); |
| | | }else |
| | | { |
| | | lightingView.Y = Application.GetRealHeight(304); |
| | | if (index == 1) |
| | | { |
| | | lightingView.Gravity = Gravity.CenterHorizontal; |
| | |
| | | } |
| | | } |
| | | 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++; |
| | | } |
| | | |
| | |
| | | private void RefreshFormStatu() |
| | | { |
| | | Application.RunOnMainThread(() => { |
| | | var temp = device.status.Find((sta) => sta.key == FunctionAttributeKey.Status); |
| | | if (temp != null) |
| | | btnIcon.IsSelected = true; |
| | | #region 点亮文本 |
| | | var hotDryTemp = device.status.Find((sta) => sta.key == FunctionAttributeKey.HotDry); |
| | | if (hotDryTemp != null) |
| | | { |
| | | if (temp.value == "true") |
| | | { |
| | | } |
| | | else |
| | | { |
| | | } |
| | | 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 |
| | | |
| | | |
| | | }); |
| | | } |
| | | |
| | |
| | | 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, |
| | |
| | | { |
| | | Gravity = Gravity.Center, |
| | | Text = title, |
| | | Height = Application.GetRealHeight(42), |
| | | TextColor = CSS_Color.TextualColor, |
| | | SelectedTextColor = CSS_Color.MainColor, |
| | | TextSize = CSS_FontSize.PromptFontSize_FirstLevel, |
| | |
| | | btnTime = new Button() |
| | | { |
| | | Gravity = Gravity.CenterHorizontal, |
| | | Y = btnTitle.Bottom, |
| | | Height = Application.GetRealHeight(32), |
| | | Text = time, |
| | | TextColor = CSS_Color.TextualColor, |
| | | TextColor = 0x00000000, |
| | | SelectedTextColor = CSS_Color.MainColor, |
| | | TextSize = CSS_FontSize.PromptFontSize_SecondaryLevel, |
| | | }; |
| | |
| | | /// <param name="newTime"></param> |
| | | public void ChangeTime (string newTime) |
| | | { |
| | | btnTime.Text = 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 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() |
| | | { |
| | | return btnIcon.IsSelected; |
| | | 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; |
| | | } |
| | | } |