From 8960f866958ece0900b0ee13e70c9320507f98db Mon Sep 17 00:00:00 2001 From: wjc <1243177876@qq.com> Date: 星期二, 07 二月 2023 18:50:23 +0800 Subject: [PATCH] 2023年02月07日18:50:21 --- HDL_ON/UI/UI2/FuntionControlView/Light/LightScene/AddLightScene.cs | 384 ++++++++++++++++++++++++++++++++---------------------- 1 files changed, 227 insertions(+), 157 deletions(-) diff --git a/HDL_ON/UI/UI2/FuntionControlView/Light/LightScene/AddLightScene.cs b/HDL_ON/UI/UI2/FuntionControlView/Light/LightScene/AddLightScene.cs index ee30315..c462573 100644 --- a/HDL_ON/UI/UI2/FuntionControlView/Light/LightScene/AddLightScene.cs +++ b/HDL_ON/UI/UI2/FuntionControlView/Light/LightScene/AddLightScene.cs @@ -375,6 +375,7 @@ public void ShowDialog() { + commandDic.Clear(); commandDic.Add(FunctionAttributeKey.OnOff, "off"); listSwitch = lights.FindAll((obj) => obj.spk == SPK.LightSwitch); @@ -382,9 +383,31 @@ lightCCT = lights.FindAll((obj) => obj.spk == SPK.LightCCT); lightRGB = lights.FindAll((obj) => obj.spk == SPK.LightRGB); + + var hadDimming = lightDimming.Count > 0; var hadCCT = lightCCT.Count > 0; var hadRGB = lightRGB.Count > 0; + if ( hadRGB) + { + commandDic.Add(FunctionAttributeKey.RGB, lightRGB[0].GetAttrState(FunctionAttributeKey.RGB)); + commandDic.Add(FunctionAttributeKey.Brightness, lightRGB[0].GetAttrState(FunctionAttributeKey.Brightness)); + } + if (hadCCT) + { + commandDic.Add(FunctionAttributeKey.CCT, lightCCT[0].GetAttrState(FunctionAttributeKey.CCT)); + if (!commandDic.ContainsKey(FunctionAttributeKey.Brightness)) + { + commandDic.Add(FunctionAttributeKey.Brightness, lightCCT[0].GetAttrState(FunctionAttributeKey.Brightness)); + } + } + if (hadDimming) + { + if (!commandDic.ContainsKey(FunctionAttributeKey.Brightness)) + { + commandDic.Add(FunctionAttributeKey.Brightness, lightCCT[0].GetAttrState(FunctionAttributeKey.Brightness)); + } + } var bodyView = new FrameLayout(); this.AddChidren(bodyView); @@ -435,9 +458,17 @@ X = Application.GetRealWidth(12) + btnTitle.Right, Gravity = Gravity.CenterVertical, UnSelectedImagePath = "Public/Edit.png", - //SelectedImagePath = "Public/HookIcon.png" }; - titleView.AddChidren(btnEditIcon); + if (string.IsNullOrEmpty(scene.userSceneId)) + { + titleView.AddChidren(btnEditIcon); + } + else + { + btnTitle.Text = scene.name; + btnTitle.Width = btnTitle.GetTextWidth()+ Application.GetRealWidth(10); + btnTitle.Gravity = Gravity.Center; + } Action<string> callBack = (str) => { @@ -646,175 +677,198 @@ contentView.AddChidren(bottomView); bottomView.AddChidren(new Button() { Height = 1, BackgroundColor = CSS_Color.DividingLineColor }); - var btnCacel = new Button() + if (string.IsNullOrEmpty(scene.userSceneId)) { - Width = Application.GetRealWidth(172), - Height = Application.GetRealHeight(44), - TextAlignment = TextAlignment.Center, - TextSize = CSS_FontSize.SubheadingFontSize, - TextColor = CSS_Color.TextualColor, - TextID = StringId.Cancel, - }; - bottomView.AddChidren(btnCacel); - - var btnSave = new Button() - { - X = Application.GetRealWidth(172), - Width = Application.GetRealWidth(172), - Height = Application.GetRealHeight(46), - BackgroundColor = CSS_Color.MainColor, - TextColor = CSS_Color.MainBackgroundColor, - TextAlignment = TextAlignment.Center, - TextSize = CSS_FontSize.SubheadingFontSize, - TextID = StringId.Save - }; - bottomView.AddChidren(btnSave); - - //渚嬶細鍙充笅鍦嗚 澶у皬涓�50 - int mRectCornerID = HDLUtils.RectCornerBottomRight; - btnSave.SetCornerWithSameRadius((uint)Application.GetRealWidth(14), mRectCornerID); - - - - btnCacel.MouseUpEventHandler = (sender, e) => { - this.Close(); - - //var waitPage = new Loading(); - //MainPage.BaseView.AddChidren(waitPage); - //waitPage.Start(Language.StringByID(StringId.PleaseWait)); - //new Thread(() => - //{ - // try - // { - // foreach (var light in lights) - // { - // Dictionary<string, string> sendDate = new Dictionary<string, string>(); - // //璧嬪�煎満鏅姛鑳芥暟鎹� - // foreach (var attr in light.GetAttributes()) - // { - // if (commandDic.ContainsKey(attr)) - // { - // try - // { - // sendDate.Add(attr, commandDic[attr]); - // } - // catch { } - // } - - // } - // Control.Ins.SendWriteCommand(light, sendDate); - // Thread.Sleep(50); - // } - // } - // catch - // { } - // finally - // { - // Application.RunOnMainThread(() => - // { - // waitPage.Hide(); - // new PublicAssmebly().TipMsgAutoClose("缁勫悎鎺у埗宸叉墽琛�", true); - // if (waitPage != null) - // { - // //backAction(null); - // waitPage.RemoveFromParent(); - // } - // }); - // } - //}) - //{ IsBackground = true }.Start(); - }; - - - - btnSave.MouseUpEventHandler = (sender, e) => - { - if (string.IsNullOrEmpty(scene.name)) + var btnCacel = new Button() { - new Tip() - { - CloseTime = 1, - Text = Language.StringByID(StringId.NameCannotBeEmpty), - Direction = AMPopTipDirection.None, - }.Show(bodyView); - return; - } - foreach (var tempRoom in FunctionList.List.scenes) + Width = Application.GetRealWidth(172), + Height = Application.GetRealHeight(44), + TextAlignment = TextAlignment.Center, + TextSize = CSS_FontSize.SubheadingFontSize, + TextColor = CSS_Color.TextualColor, + TextID = StringId.Cancel, + }; + bottomView.AddChidren(btnCacel); + + var btnSave = new Button() { - if (scene.name == tempRoom.name) + X = Application.GetRealWidth(172), + Width = Application.GetRealWidth(172), + Height = Application.GetRealHeight(46), + BackgroundColor = CSS_Color.MainColor, + TextColor = CSS_Color.MainBackgroundColor, + TextAlignment = TextAlignment.Center, + TextSize = CSS_FontSize.SubheadingFontSize, + TextID = StringId.Save + }; + bottomView.AddChidren(btnSave); + + //渚嬶細鍙充笅鍦嗚 澶у皬涓�50 + int mRectCornerID = HDLUtils.RectCornerBottomRight; + btnSave.SetCornerWithSameRadius((uint)Application.GetRealWidth(14), mRectCornerID); + + btnCacel.MouseUpEventHandler = (sender, e) => + { + this.Close(); + + //var waitPage = new Loading(); + //MainPage.BaseView.AddChidren(waitPage); + //waitPage.Start(Language.StringByID(StringId.PleaseWait)); + //new Thread(() => + //{ + // try + // { + // foreach (var light in lights) + // { + // Dictionary<string, string> sendDate = new Dictionary<string, string>(); + // //璧嬪�煎満鏅姛鑳芥暟鎹� + // foreach (var attr in light.GetAttributes()) + // { + // if (commandDic.ContainsKey(attr)) + // { + // try + // { + // sendDate.Add(attr, commandDic[attr]); + // } + // catch { } + // } + + // } + // Control.Ins.SendWriteCommand(light, sendDate); + // Thread.Sleep(50); + // } + // } + // catch + // { } + // finally + // { + // Application.RunOnMainThread(() => + // { + // waitPage.Hide(); + // new PublicAssmebly().TipMsgAutoClose("缁勫悎鎺у埗宸叉墽琛�", true); + // if (waitPage != null) + // { + // //backAction(null); + // waitPage.RemoveFromParent(); + // } + // }); + // } + //}) + //{ IsBackground = true }.Start(); + }; + + btnSave.MouseUpEventHandler = (sender, e) => + { + if (string.IsNullOrEmpty(scene.name)) { - new PublicAssmebly().TipMsg(StringId.Tip, StringId.NameAlreadyExists); + new Tip() + { + CloseTime = 1, + Text = Language.StringByID(StringId.NameCannotBeEmpty), + Direction = AMPopTipDirection.None, + }.Show(bodyView); return; } - } - var waitPage = new Loading(); - MainPage.BaseView.AddChidren(waitPage); - waitPage.Start(Language.StringByID(StringId.PleaseWait)); - new Thread(() => - { - try + foreach (var tempRoom in FunctionList.List.scenes) { - var serverScene = new Scene(); - for (int i = 0; i < lights.Count; i++) + if (scene.name == tempRoom.name) { - var light = lights[i]; + new PublicAssmebly().TipMsg(StringId.Tip, StringId.NameAlreadyExists); + return; + } + } + var waitPage = new Loading(); + MainPage.BaseView.AddChidren(waitPage); + waitPage.Start(Language.StringByID(StringId.PleaseWait)); + new Thread(() => + { + try + { + var serverScene = new Scene(); + for (int i = 0; i < lights.Count; i++) + { + var light = lights[i]; //璧嬪�煎満鏅姛鑳芥暟鎹� foreach (var attr in light.GetAttributes()) - { - if (commandDic.ContainsKey(attr)) { - try + if (commandDic.ContainsKey(attr)) { - light.SetAttrState(attr, commandDic[attr]); + try + { + light.SetAttrState(attr, commandDic[attr]); + } + catch { } } - catch { } } - } //杞崲鍦烘櫙鐨勫姛鑳藉璞� var sceneFunction = light.ConvertSceneFunction(); //鏌ヨ鏈夋病鏈夊瓨鍦� var temp = scene.functions.Find((obj) => obj.sid == sceneFunction.sid); //璧嬪�� if (temp != null) - { - temp = sceneFunction; - } - else - { - scene.functions.Add(sceneFunction); - } - } - var result = FunctionList.List.AddScene(scene, out serverScene); - Application.RunOnMainThread(() => - { - if (result == StateCode.SUCCESS) - { - scene.userSceneId = serverScene.userSceneId; - FunctionList.List.scenes.Add(scene); - backAction?.Invoke(scene); - this.Close(); - } - else - { - if (result == "124005") - IMessageCommon.Current.ShowErrorInfoAlter(Language.StringByID(StringId.GatewayOffline)); + { + temp = sceneFunction; + } else - IMessageCommon.Current.ShowErrorInfoAlter(result); + { + scene.functions.Add(sceneFunction); + } } - }); - } - catch { } - finally - { - Application.RunOnMainThread(() => { - waitPage.Hide(); - waitPage.RemoveFromParent(); - }); - } - }) - { IsBackground = true, Priority = ThreadPriority.AboveNormal }.Start(); - }; + var result = FunctionList.List.AddScene(scene, out serverScene); + Application.RunOnMainThread(() => + { + if (result == StateCode.SUCCESS) + { + scene.userSceneId = serverScene.userSceneId; + FunctionList.List.scenes.Add(scene); + backAction?.Invoke(scene); + this.Close(); + } + else + { + if (result == "124005") + IMessageCommon.Current.ShowErrorInfoAlter(Language.StringByID(StringId.GatewayOffline)); + else + IMessageCommon.Current.ShowErrorInfoAlter(result); + } + }); + } + catch { } + finally + { + Application.RunOnMainThread(() => + { + waitPage.Hide(); + waitPage.RemoveFromParent(); + }); + } + }) + { IsBackground = true, Priority = ThreadPriority.AboveNormal }.Start(); + }; + } + else + { + var btnCacel = new Button() + { + Height = Application.GetRealHeight(44), + TextAlignment = TextAlignment.Center, + TextSize = CSS_FontSize.SubheadingFontSize, + TextColor = CSS_Color.TextualColor, + TextID = StringId.Close, + }; + bottomView.AddChidren(btnCacel); + + //渚嬶細鍙充笅鍦嗚 澶у皬涓�50 + //int mRectCornerID = HDLUtils.RectCornerBottomRight; + //btnSave.SetCornerWithSameRadius((uint)Application.GetRealWidth(14), mRectCornerID); + + btnCacel.MouseUpEventHandler = (sender, e) => + { + this.Close(); + }; + + } @@ -833,8 +887,8 @@ /// <param name="attrView"></param> void LoadDimmingAttrView(VerticalScrolViewLayout attrView) { - - commandDic.TryAdd(FunctionAttributeKey.Percent, "0"); + string briValue = ""; + commandDic.TryGetValue(FunctionAttributeKey.Brightness,out briValue); var dimmingView = new FrameLayout() { @@ -854,7 +908,7 @@ TextSize = CSS_FontSize.PromptFontSize_FirstLevel, TextID = StringId.Brightness, }; - btnBrightnessText.Text = Language.StringByID(StringId.Brightness) + " " + commandDic[FunctionAttributeKey.Percent] + "%"; + btnBrightnessText.Text = Language.StringByID(StringId.Brightness) + " " + commandDic[FunctionAttributeKey.Brightness] + "%"; dimmingView.AddChidren(btnBrightnessText); @@ -884,7 +938,7 @@ ProgressTextSize = CSS_FontSize.PromptFontSize_FirstLevel, ProgressBarColor = CSS_Color.AuxiliaryColor1, MaxValue = 100, - Progress = Convert.ToInt32(commandDic[FunctionAttributeKey.Percent]), + Progress = Convert.ToInt32(commandDic[FunctionAttributeKey.Brightness]), SeekBarPadding = Application.GetRealWidth(20), IsProgressTextShow = false, ProgressChangeDelayTime = 0, @@ -894,7 +948,7 @@ btnBrightnessText.Text = Language.StringByID(StringId.Brightness) + " " + e + "%"; }; dimmerBar.OnStopTrackingTouchEvent = (sender, e) => { - commandDic[FunctionAttributeKey.Percent] = dimmerBar.Progress.ToString(); + commandDic[FunctionAttributeKey.Brightness] = dimmerBar.Progress.ToString(); btnBrightnessText.Text = Language.StringByID(StringId.Brightness) + " " + e + "%"; foreach (var light in lights) @@ -938,6 +992,10 @@ void LoadCctAttrView(VerticalScrolViewLayout attrView) { #region 鑹叉俯 + + string valueStr = "2700"; + commandDic.TryGetValue(FunctionAttributeKey.CCT, out valueStr); + int value = Convert.ToInt32(valueStr) / 100; var cctView = new FrameLayout() { @@ -1001,9 +1059,7 @@ barColorTemplatrue.SeekBarBackgroundColor = 0x00000000; cctView.AddChidren(barColorTemplatrue); barColorTemplatrue.Y = btnTempClolorMin.Y - (barColorTemplatrue.Height - btnTempClolorMin.Height) / 2; - var cct = 27; - //int.TryParse(cctLight.status.Find((obj) => obj.key == FunctionAttributeKey.CCT).value, out cct); - barColorTemplatrue.Progress = cct; + barColorTemplatrue.Progress = value; //璁剧疆鍒濆鍊� btnTempClolor.Text = Language.StringByID(StringId.ColorTemperature) + " " + (barColorTemplatrue.Progress * 100 + "K"); barColorTemplatrue.OnProgressChangedEvent = (sender, e) => @@ -1052,7 +1108,9 @@ { #region RGB - commandDic.TryAdd(FunctionAttributeKey.RGB, "255,255,255"); + + string value = "255,255,255"; + commandDic.TryGetValue(FunctionAttributeKey.RGB, out value); var rgbView = new FrameLayout() { @@ -1122,6 +1180,10 @@ string rgbString = (e2[0] + "," + e2[1] + "," + e2[2]).ToString(); commandDic[FunctionAttributeKey.RGB] = rgbString; btnCurColor.BackgroundColor = (uint)(0xFF000000 + tempLight.GetRGBcolor(rgbString)); + foreach (var rgbTemp in lightRGB) + { + rgbTemp.SetAttrState(FunctionAttributeKey.RGB, rgbString); + } }; colorPicker.MouseDownEventHandler += (sender, e) => { @@ -1139,6 +1201,14 @@ btnWhiteRound.Visible = true; } }; + colorPicker.MouseUpEventHandler = (sender, e) => { + foreach (var rgbTemp in lightRGB) + { + Dictionary<string, string> d = new Dictionary<string, string>(); + d.Add(FunctionAttributeKey.RGB, tempLight.GetRGBcolorString(rgbTemp)); + Control.Ins.SendWriteCommand(rgbTemp, d, false, 0); + } + }; colorPicker.MouseMoveEventHandler += (sender, e) => { -- Gitblit v1.8.0