From e1a8f2f7e4d850beedeb1469610b878c1427e976 Mon Sep 17 00:00:00 2001 From: wxr <464027401@qq.com> Date: 星期三, 15 十二月 2021 09:01:53 +0800 Subject: [PATCH] 更新 --- HDL_ON/UI/UI2/FuntionControlView/Light/RGBPageBLL.cs | 159 +++++++++++++++++++++++++++++++++++------------------ 1 files changed, 105 insertions(+), 54 deletions(-) diff --git a/HDL_ON/UI/UI2/FuntionControlView/Light/RGBPageBLL.cs b/HDL_ON/UI/UI2/FuntionControlView/Light/RGBPageBLL.cs index 89900c2..8281d85 100644 --- a/HDL_ON/UI/UI2/FuntionControlView/Light/RGBPageBLL.cs +++ b/HDL_ON/UI/UI2/FuntionControlView/Light/RGBPageBLL.cs @@ -9,18 +9,18 @@ /// <summary> /// 鏇存柊鍔熻兘鐘舵�� /// </summary> - public static void UpdataStates(Light uFunction) + public static void UpdataStates(Function updateTemp) { - Application.RunOnMainThread((Action)(() => + Application.RunOnMainThread((() => { try { if (bodyView == null) return; - if (uFunction.spk == bodyView.light.spk && uFunction.sid == bodyView.light.sid) + if (updateTemp.spk == bodyView.function.spk && updateTemp.sid == bodyView.function.sid) { - if (uFunction.trait_on_off.curValue.ToString() == "on") + if (updateTemp.trait_on_off.curValue.ToString() == "on") { //瑙e喅閮ㄥ垎瀹夊崜鎵嬫満锛屽埛鏂板浘鐗囨椂浼氬彉灏忛棶棰� if (bodyView.colorPicker.ColorImagePath != "FunctionIcon/Light/ColorWheel.png") @@ -31,11 +31,11 @@ bodyView.btnSwitch.IsSelected = true; if (!bodyView.onDimmerBar) { - bodyView.dimmerBar.Progress = uFunction.brightness; + bodyView.dimmerBar.Progress = Convert.ToInt32(updateTemp.GetAttrState(FunctionAttributeKey.Brightness)); } } //鐘舵�佷竴鏍锋椂,涓嶅啀鍒锋柊瑙嗗浘 - else if (uFunction.trait_on_off.curValue.ToString() == "off" && bodyView.btnSwitch.IsSelected == true) + else if (updateTemp.trait_on_off.curValue.ToString() == "off" && bodyView.btnSwitch.IsSelected == true) { //瑙e喅閮ㄥ垎瀹夊崜鎵嬫満锛屽埛鏂板浘鐗囨椂浼氬彉灏忛棶棰� if (bodyView.colorPicker.ColorImagePath != "FunctionIcon/Light/ColorWheelGray.png") @@ -48,8 +48,9 @@ //鑹茬洏鐨勫渾鐐归殣钘� bodyView.btnWhiteRound.Visible = false; } - bodyView.btnCurColor.BackgroundColor = (uint)(0xFF000000 + bodyView.light.GetRGBcolor()); - if (bodyView.light.GetRGBcolor() == 16777215 && bodyView.btnCurColor.BorderColor != 0x00000000) + bodyView.btnCurColor.BackgroundColor = (uint)(0xFF000000 + bodyView.lightTemp.GetRGBcolor(updateTemp.GetAttrState(FunctionAttributeKey.RGB))); + bodyView.lastColor = bodyView.lightTemp.GetRGBbytes(updateTemp); + if (bodyView.lightTemp.GetRGBcolor(updateTemp.GetAttrState(FunctionAttributeKey.RGB)) == 16777215 && bodyView.btnCurColor.BorderColor != 0x00000000) { bodyView.btnCurColor.BorderColor = CSS.CSS_Color.PromptingColor2; } @@ -77,8 +78,8 @@ LoadEvet_ChangeFadeTime(); //鍥為��鍒锋柊淇℃伅浜嬩欢 actionRefresh = () => { - btnFunctionName.Text = btnFunctionName_Out.Text = light.name; - btnFromFloor_Out.Text = btnFromFoorAndRoom.Text = light.GetRoomListName(); + btnFunctionName.Text = btnFunctionName_Out.Text = function.name; + btnFromFloor_Out.Text = btnFromFoorAndRoom.Text = function.GetRoomListName(); }; } @@ -88,6 +89,7 @@ void LoadColorChangeEvent() { DateTime colorChangeTime = DateTime.MinValue; + //bool send = false; //褰撳墠鐐瑰嚮鐨勩�愮偣銆戞槸鍚︽纭� bool pointIsRight = false; @@ -95,25 +97,25 @@ int circleR = colorPicker.Width / 2 - Application.GetRealWidth(12); colorPicker.ColorChaged += (sender2, e2) => { - if (light.trait_on_off.curValue.ToString() == "off" - || pointIsRight == false) + if (function.trait_on_off.curValue.ToString() == "off" || pointIsRight == false) { //pointIsRight:鐐圭殑鍖哄煙涓嶆槸鍦嗙洏鍐� return; } - if ((DateTime.Now - colorChangeTime).TotalMilliseconds > 200) - { - light.SetRGBcolor(e2); - colorChangeTime = DateTime.Now; - btnCurColor.BackgroundColor = (uint)(0xFF000000 + light.GetRGBcolor()); - System.Collections.Generic.Dictionary<string, string> d = new System.Collections.Generic.Dictionary<string, string>(); - d.Add(FunctionAttributeKey.RGB, light.GetRGBcolorString()); - Control.Ins.SendWriteCommand(light, d); - } + //if (send) + //{ + lastColor = e2; + // send = false; + //} }; + + //colorPicker.MouseUpEventHandler += (sender, e) => { + // send = true; + //}; + colorPicker.MouseDownEventHandler += (sender, e) => { - if (light.trait_on_off.curValue.ToString() == "off") + if (function.trait_on_off.curValue.ToString() == "off") { return; } @@ -131,11 +133,57 @@ btnWhiteRound.Visible = true; } }; + colorPicker.MouseMoveEventHandler += (sender, e) => { //褰撻紶鏍囩偣涓嬩簨浠跺鐞� colorPicker.MouseDownEventHandler(sender, e); + //if (function.trait_on_off.curValue.ToString() == "off") + //{ + // return; + //} + //pointIsRight = this.CheckPoint(circleR, colorPicker.Width / 2, colorPicker.Height / 2, (int)e.X, (int)e.Y); + //if (pointIsRight == false) + //{ + // //鐐圭殑鍖哄煙涓嶆槸鍦嗙洏鍐� + // return; + //} + ////鏄剧ず鐧界偣 + //btnWhiteRound.X = (int)e.X - btnWhiteRound.Width / 2; + //btnWhiteRound.Y = (int)e.Y - btnWhiteRound.Height / 2; + //if (btnWhiteRound.Visible == false) + //{ + // btnWhiteRound.Visible = true; + //} + //btnCurColor.BackgroundColor = (uint)(0xFF000000 + lightTemp.GetRGBcolor(function)); }; + + var colorChangeEvent = new System.Threading.Thread(() => { + while (this.Parent != null) + { + if (function.trait_on_off.curValue.ToString() == "off" || pointIsRight == false) + { + //pointIsRight:鐐圭殑鍖哄煙涓嶆槸鍦嗙洏鍐� + continue; + } + + for (int i = 0; i < 3; i++) + { + if (lightTemp.GetRGBbytes(function)[i].ToString() != lastColor[i].ToString()) + { + function.SetAttrState(FunctionAttributeKey.RGB, lastColor); + lightTemp.SetRGBcolor(lastColor, function); + System.Collections.Generic.Dictionary<string, string> d = new System.Collections.Generic.Dictionary<string, string>(); + d.Add(FunctionAttributeKey.RGB, lightTemp.GetRGBcolorString(function)); + Control.Ins.SendWriteCommand(function, d,false,0); + break; + } + } + System.Threading.Thread.Sleep(200); + } + }); + colorChangeEvent.IsBackground = true; + colorChangeEvent.Start(); } /// <summary> @@ -144,8 +192,8 @@ void LoadCollectionEvent() { btnCollection.MouseUpEventHandler += (sender, e) => { - btnCollection.IsSelected = light.collect = btnCollection_Out.IsSelected = !btnCollection.IsSelected; - light.CollectFunction(); + btnCollection.IsSelected = function.collect = btnCollection_Out.IsSelected = !btnCollection.IsSelected; + function.CollectFunction(); }; } @@ -163,39 +211,39 @@ onDimmerBar = false; }) { IsBackground = true }.Start(); - light.brightness = dimmerBar.Progress; + function.SetAttrState(FunctionAttributeKey.Brightness, dimmerBar.Progress); System.Collections.Generic.Dictionary<string, string> d = new System.Collections.Generic.Dictionary<string, string>(); - d.Add(FunctionAttributeKey.Brightness, light.brightness.ToString()); - Control.Ins.SendWriteCommand(light, d); - light.fadeTime = barFadeTime.Progress; + d.Add(FunctionAttributeKey.Brightness, dimmerBar.Progress.ToString()); + + Control.Ins.SendWriteCommand(function, d); }; dimmerBar.OnProgressChangedEvent = (sender, e) => { - //light.fadeTime = 0; + //function.fadeTime = 0; //if (!btnSwitch.IsSelected) //{ // dimmerBar.ProgressBarColor = CSS.CSS_Color.AuxiliaryColor1; //} //btnSwitch.IsSelected = e > 0 ? true : false; - //light.brightness = e; - //light.trait_on_off.curValue = e > 0 ? "on" : "off"; + //function.brightness = e; + //function.trait_on_off.curValue = e > 0 ? "on" : "off"; //if (e == 0 || e == 100) //{ // System.Collections.Generic.Dictionary<string, string> d = new System.Collections.Generic.Dictionary<string, string>(); - // d.Add(FunctionAttributeKey.Brightness, light.brightness.ToString()); - // Control.Ins.SendWriteCommand(light, d); + // d.Add(FunctionAttributeKey.Brightness, function.brightness.ToString()); + // Control.Ins.SendWriteCommand(function, d); //} //else //{ - // if (200 < (DateTime.Now - light.refreshTime).TotalMilliseconds) + // if (200 < (DateTime.Now - function.refreshTime).TotalMilliseconds) // { - // light.refreshTime = DateTime.Now; + // function.refreshTime = DateTime.Now; // new System.Threading.Thread(() => // { - // //Control.Send(CommandType_A.write, light); + // //Control.Send(CommandType_A.write, function); // System.Collections.Generic.Dictionary<string, string> d = new System.Collections.Generic.Dictionary<string, string>(); - // d.Add(FunctionAttributeKey.Brightness, light.brightness.ToString()); - // Control.Ins.SendWriteCommand(light, d); + // d.Add(FunctionAttributeKey.Brightness, function.brightness.ToString()); + // Control.Ins.SendWriteCommand(function, d); // }) // { IsBackground = true }.Start(); // } @@ -212,11 +260,14 @@ /// </summary> void LoadEvet_ChangeFadeTime() { - barFadeTime.OnStopTrackingTouchEvent = (sender, e) => + if (function.GetAttribute(FunctionAttributeKey.FadeTime) != null) { - light.fadeTime = barFadeTime.Progress; - light.UpdataFuncitonInfo(); - }; + barFadeTime.OnStopTrackingTouchEvent = (sender, e) => + { + function.SetAttrState(FunctionAttributeKey.FadeTime, e.ToString()); + function.SaveFunctionFile(); + }; + } } /// <summary> /// 鍔犺浇寮�鍏充簨浠� @@ -230,24 +281,23 @@ bodyView.colorPicker.ColorImagePath = btnSwitch.IsSelected ? "FunctionIcon/Light/ColorWheel.png" : "FunctionIcon/Light/ColorWheelGray.png"; new System.Threading.Thread(() => { - light.trait_on_off.curValue = btnSwitch.IsSelected ? "on" : "off"; + function.trait_on_off.curValue = btnSwitch.IsSelected ? "on" : "off"; System.Collections.Generic.Dictionary<string, string> d = new System.Collections.Generic.Dictionary<string, string>(); - d.Add(FunctionAttributeKey.OnOff, light.trait_on_off.curValue.ToString()); - d.Add(FunctionAttributeKey.FadeTime, light.fadeTime.ToString()); + d.Add(FunctionAttributeKey.OnOff, function.trait_on_off.curValue.ToString()); if (btnSwitch.IsSelected) { - if(light.lastBrightness == 0) + if(function.lastBrightness == 0) { - light.lastBrightness = 100; + function.lastBrightness = 100; dimmerBar.Progress = 100; } - d.Add(FunctionAttributeKey.Brightness, light.lastBrightness.ToString()); + d.Add(FunctionAttributeKey.Brightness, function.lastBrightness.ToString()); } else { - light.lastBrightness = light.brightness; + function.lastBrightness = Convert.ToInt32(function.GetAttrState(FunctionAttributeKey.Brightness)); } - Control.Ins.SendWriteCommand(light, d); + Control.Ins.SendWriteCommand(function, d); }) { IsBackground = true }.Start(); }; @@ -259,19 +309,20 @@ { btnRestoredPoint.MouseUpEventHandler = (sender, e) => { - if(light.trait_on_off.curValue.ToString() == "off") + if(function.trait_on_off.curValue.ToString() == "off") { return; } btnWhiteRound.Visible = true; btnWhiteRound.Gravity = Gravity.Center; - light.SetRGBcolor(new byte[] { 255, 255, 255 }); + lightTemp.SetRGBcolor(new byte[] { 255, 255, 255 },function); btnCurColor.BackgroundColor = 0xFFFFFFFF; btnCurColor.BorderColor = CSS.CSS_Color.PromptingColor2; System.Collections.Generic.Dictionary<string, string> d = new System.Collections.Generic.Dictionary<string, string>(); - d.Add(FunctionAttributeKey.RGB, light.GetRGBcolorString()); - Control.Ins.SendWriteCommand(light, d); + d.Add(FunctionAttributeKey.RGB, lightTemp.GetRGBcolorString(function)); + Control.Ins.SendWriteCommand(function, d); + lastColor = new byte[] { 255, 255, 255 }; }; } -- Gitblit v1.8.0