From 6fe1c5ebeb8312edc479a4576f05d80c5051a6c6 Mon Sep 17 00:00:00 2001 From: wxr <464027401@qq.com> Date: 星期三, 19 七月 2023 19:47:00 +0800 Subject: [PATCH] 炫彩功能优化 --- HDL_ON/Entity/Function/Scene.cs | 7 HDL_ON/UI/UI2/3-Intelligence/Scene/SceneFunctionListChoosePage.cs | 6 HDL_ON/UI/UI2/4-PersonalCenter/CombinedDimming/GroupControl.cs | 28 +++ HDL_ON/UI/UI2/FuntionControlView/Light/ColorfulSettingPage.cs | 38 ++++ HDL-ON_Android/Assets/Language.ini | 12 + HDL_ON/UI/UI2/3-Intelligence/Automation/InpOrOutLogicMethod.cs | 139 +++++++++++++++-- HDL_ON/UI/UI2/3-Intelligence/Scene/SceneEditPage.cs | 17 + HDL_ON/Common/ApiUtlis.cs | 1 HDL_ON/UI/UI2/FuntionControlView/Light/RGBPage.cs | 10 + HDL_ON/DAL/Mqtt/MqttClient.cs | 3 HDL_ON/UI/UI2/3-Intelligence/Automation/TargetDeviceFunList.cs | 97 +++++++++++ HDL-ON_iOS/Resources/Language.ini | 12 + HDL_ON/Entity/Function/Function.cs | 46 +++++ HDL_ON/UI/UI2/3-Intelligence/Automation/LogicMethod.cs | 18 ++ HDL-ON_Android/Resources/Resource.designer.cs | 2 HDL_ON/Common/R.cs | 9 + HDL_ON/UI/MainPage.cs | 6 HDL_ON/UI/UI1-Login/LoginPage.cs | 4 18 files changed, 413 insertions(+), 42 deletions(-) diff --git a/HDL-ON_Android/Assets/Language.ini b/HDL-ON_Android/Assets/Language.ini index 3d19285..05d3ffb 100644 --- a/HDL-ON_Android/Assets/Language.ini +++ b/HDL-ON_Android/Assets/Language.ini @@ -663,7 +663,7 @@ 676=Moderate 677=High 678=Current user data has been cleared, about to return to the previous page. - +679=Group control @@ -1203,6 +1203,7 @@ 7169=Time of duration 7170=Human presence detection 7171=continue +7172=Rgb color plate 8501=Video door lock 8502=Electric quantity @@ -2000,6 +2001,8 @@ 676=涓� 677=楂� 678=褰撳墠鐢ㄦ埛鏁版嵁宸叉竻绌猴紝鍗冲皢杩斿洖涓婁竴椤点�� +679=缇ゆ帶 + 2532=璁垮閭�璇疯褰� @@ -2539,6 +2542,7 @@ 7169=鎸佺画鏃堕棿 7170=浜轰綋瀛樺湪妫�娴� 7171=鎸佺画 +7172=RGB鑹茬洏 @@ -3334,6 +3338,7 @@ 676=Moderate 677=High 678=Current user data has been cleared, about to return to the previous page. +679=Group control @@ -3873,6 +3878,7 @@ 7169=Time of duration 7170=Human presence detection 7171=continue +7172=Rgb color plate 8501=Video door lock 8502=Electric quantity @@ -4665,6 +4671,7 @@ 676=Moderate 677=High 678=Current user data has been cleared, about to return to the previous page. +679=Group control @@ -5200,6 +5207,7 @@ 7169=Time of duration 7170=Human presence detection 7171=continue +7172=Rgb color plate 8501=Video door lock 8502=Electric quantity @@ -5985,6 +5993,7 @@ 676=Moderate 677=High 678=Current user data has been cleared, about to return to the previous page. +679=Group control @@ -6527,6 +6536,7 @@ 7169=Time of duration 7170=Human presence detection 7171=continue +7172=Rgb color plate 8501=Video door lock 8502=Electric quantity diff --git a/HDL-ON_Android/Resources/Resource.designer.cs b/HDL-ON_Android/Resources/Resource.designer.cs index 24b9b9e..0bf2792 100644 --- a/HDL-ON_Android/Resources/Resource.designer.cs +++ b/HDL-ON_Android/Resources/Resource.designer.cs @@ -14,7 +14,7 @@ { - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Xamarin.Android.Build.Tasks", "1.0.0.0")] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Xamarin.Android.Build.Tasks", "12.2.8.165")] public partial class Resource { diff --git a/HDL-ON_iOS/Resources/Language.ini b/HDL-ON_iOS/Resources/Language.ini index 3d19285..05d3ffb 100644 --- a/HDL-ON_iOS/Resources/Language.ini +++ b/HDL-ON_iOS/Resources/Language.ini @@ -663,7 +663,7 @@ 676=Moderate 677=High 678=Current user data has been cleared, about to return to the previous page. - +679=Group control @@ -1203,6 +1203,7 @@ 7169=Time of duration 7170=Human presence detection 7171=continue +7172=Rgb color plate 8501=Video door lock 8502=Electric quantity @@ -2000,6 +2001,8 @@ 676=涓� 677=楂� 678=褰撳墠鐢ㄦ埛鏁版嵁宸叉竻绌猴紝鍗冲皢杩斿洖涓婁竴椤点�� +679=缇ゆ帶 + 2532=璁垮閭�璇疯褰� @@ -2539,6 +2542,7 @@ 7169=鎸佺画鏃堕棿 7170=浜轰綋瀛樺湪妫�娴� 7171=鎸佺画 +7172=RGB鑹茬洏 @@ -3334,6 +3338,7 @@ 676=Moderate 677=High 678=Current user data has been cleared, about to return to the previous page. +679=Group control @@ -3873,6 +3878,7 @@ 7169=Time of duration 7170=Human presence detection 7171=continue +7172=Rgb color plate 8501=Video door lock 8502=Electric quantity @@ -4665,6 +4671,7 @@ 676=Moderate 677=High 678=Current user data has been cleared, about to return to the previous page. +679=Group control @@ -5200,6 +5207,7 @@ 7169=Time of duration 7170=Human presence detection 7171=continue +7172=Rgb color plate 8501=Video door lock 8502=Electric quantity @@ -5985,6 +5993,7 @@ 676=Moderate 677=High 678=Current user data has been cleared, about to return to the previous page. +679=Group control @@ -6527,6 +6536,7 @@ 7169=Time of duration 7170=Human presence detection 7171=continue +7172=Rgb color plate 8501=Video door lock 8502=Electric quantity diff --git a/HDL_ON/Common/ApiUtlis.cs b/HDL_ON/Common/ApiUtlis.cs index 95903e1..e0a8a6a 100644 --- a/HDL_ON/Common/ApiUtlis.cs +++ b/HDL_ON/Common/ApiUtlis.cs @@ -401,6 +401,7 @@ } readSidList.Clear(); } + //FunctionList.List.Functions.AddRange(FunctionList.List.groupControls); } if (readSidList.Count > 0) { diff --git a/HDL_ON/Common/R.cs b/HDL_ON/Common/R.cs index 34d0c0b..4b3807e 100644 --- a/HDL_ON/Common/R.cs +++ b/HDL_ON/Common/R.cs @@ -6,6 +6,10 @@ { /// <summary> + /// 缇ゆ帶 + /// </summary> + public const int GroupControl = 679; + /// <summary> /// 褰撳墠鐢ㄦ埛鏁版嵁鏄竻绌猴紝鍗冲皢杩斿洖涓婁竴椤点�� /// </summary> public const int VideoDoorlockDelDataTip = 678; @@ -3447,6 +3451,11 @@ /// 鎸佺画 /// </summary> public const int chixu = 7171; + /// <summary> + /// RGB鑹茬洏 + /// </summary> + public const int rgbsepan = 7172; + /// <summary> diff --git a/HDL_ON/DAL/Mqtt/MqttClient.cs b/HDL_ON/DAL/Mqtt/MqttClient.cs index bf5dd53..0358a57 100644 --- a/HDL_ON/DAL/Mqtt/MqttClient.cs +++ b/HDL_ON/DAL/Mqtt/MqttClient.cs @@ -12,6 +12,7 @@ using HDL_ON.Entity; using HDL_ON.UI; using HDL_ON.DAL.Server; +using HDL_ON; namespace HDL_ON.DAL.Mqtt { @@ -1187,7 +1188,7 @@ } catch (Exception ex) { - Console.WriteLine(ex.Message); + MainPage.Log(ex.Message); } return reData; } diff --git a/HDL_ON/Entity/Function/Function.cs b/HDL_ON/Entity/Function/Function.cs index 0960b7e..8b52231 100644 --- a/HDL_ON/Entity/Function/Function.cs +++ b/HDL_ON/Entity/Function/Function.cs @@ -109,7 +109,7 @@ /// </summary> /// <param name="key"></param> /// <returns></returns> - public string GetAttrState(string key , string defaultValue = "0") + public string GetAttrState(string key, string defaultValue = "0") { //涓�绾ф煡璇eyValue鍊� var attrState = attributes.Find((s) => s.key == key.ToString()); @@ -279,7 +279,7 @@ /// <summary> /// 鐗╃悊璁惧(妯″潡)鍨嬪彿 /// </summary> - public string omodel =string.Empty; + public string omodel = string.Empty; /// <summary> /// 璁惧spk /// </summary> @@ -372,6 +372,39 @@ /// attri /// </summary> public List<FunctionAttributes> attributes = new List<FunctionAttributes>(); + + public List<FunctionAttributes> GetFunctionAttributes() + { + if (spk == SPK.GroupControl) + { + var list = new List<FunctionAttributes>(); + var gc = FunctionList.List.groupControls.Find((obj) => obj.sid == sid); + if (gc != null) + { + foreach (var temp in gc.sids) + { + var light = FunctionList.List.GetLightList().Find((obj) => obj.sid == temp.sid); + if (light != null) + { + foreach (var attr in light.attributes) + { + if (list.Find((obj) => obj.key == attr.key) == null) + { + list.Add(attr); + } + } + } + } + } + + return list; + } + else + { + return attributes; + } + } + /// <summary> /// 鎴块棿ID鍒楄〃 @@ -766,6 +799,10 @@ public SceneFunction ConvertSceneFunction() { var sFunc = new SceneFunction(); + if(spk == SPK.GroupControl) + { + + } foreach (var attr in attributes) { //绐楀笜鍚屾椂鍙戦�佸紑鍏宠窡鐧惧垎姣斾細鏈夐棶棰橈紝 @@ -778,6 +815,9 @@ continue; } } + }else if (spk == SPK.GroupControl) + { + sFunc.type = "5"; } string us = ""; @@ -1424,7 +1464,7 @@ /// <summary> /// 缇ゆ帶锛堣嚜瀹氫箟锛� /// </summary> - public const string GroupControl = "GroupControl"; + public const string GroupControl = "groupControl"; /// <summary> /// 閫氱敤寮�鍏� /// </summary> diff --git a/HDL_ON/Entity/Function/Scene.cs b/HDL_ON/Entity/Function/Scene.cs index 3b00095..1e6d11d 100644 --- a/HDL_ON/Entity/Function/Scene.cs +++ b/HDL_ON/Entity/Function/Scene.cs @@ -629,7 +629,12 @@ return sceneFunctionInfo; } - + /// <summary> + /// 璁惧 + /// 鍦烘櫙 =scene + /// 缇ゆ帶=5 + /// </summary> + public string type = "0"; } /// <summary> diff --git a/HDL_ON/UI/MainPage.cs b/HDL_ON/UI/MainPage.cs index cf5614a..e71ce0f 100644 --- a/HDL_ON/UI/MainPage.cs +++ b/HDL_ON/UI/MainPage.cs @@ -121,6 +121,7 @@ SPK.AirSwitch, SPK.PanelSocket,SPK.ElectricSocket, SPK.MechanicalArm,SPK.IpCam_Imou, + SPK.GroupControl }; @@ -607,7 +608,10 @@ public static void Log(string msg) { #if DEBUG - if (msg.Contains("鏀跺埌鏁版嵁")) + if (msg.Contains("鏀跺埌鏁版嵁") + || msg.Contains("鍙戦��") + + ) Console.WriteLine(msg); #endif } diff --git a/HDL_ON/UI/UI1-Login/LoginPage.cs b/HDL_ON/UI/UI1-Login/LoginPage.cs index 246f9f4..a2afca1 100644 --- a/HDL_ON/UI/UI1-Login/LoginPage.cs +++ b/HDL_ON/UI/UI1-Login/LoginPage.cs @@ -944,11 +944,11 @@ sids = new List<GroupControlFunction>() { new GroupControlFunction(){ - sid = "light1", + sid = lightRgb1.sid, spk = SPK.LightRGB, }, new GroupControlFunction(){ - sid = "light2", + sid = "light2", spk = SPK.LightRGB, }, } diff --git a/HDL_ON/UI/UI2/3-Intelligence/Automation/InpOrOutLogicMethod.cs b/HDL_ON/UI/UI2/3-Intelligence/Automation/InpOrOutLogicMethod.cs index 805c245..6da1d29 100644 --- a/HDL_ON/UI/UI2/3-Intelligence/Automation/InpOrOutLogicMethod.cs +++ b/HDL_ON/UI/UI2/3-Intelligence/Automation/InpOrOutLogicMethod.cs @@ -995,6 +995,7 @@ switch (outputTarget.target_type) { case "1": + case "5": { //鐢╯id鎵惧埌璁惧锛� var device = LogicMethod.Current.GetDevice(outputTarget.sid); @@ -1008,6 +1009,7 @@ //鍖哄埆涓嶅悓璁惧锛屾樉绀轰笉鍚岃澶囩姸鎬� switch (device.spk) { + case SPK.CommonSeries: targetView.btnIcon.UnSelectedImagePath = "FunctionIcon/Icon/groupControl.png"; stateStr = GetKeyValue("on_off", dicList) == "on" ? Language.StringByID(StringId.onLogic) : Language.StringByID(StringId.offLogic); @@ -1049,29 +1051,14 @@ } } break; + + case SPK.LightRGB: case SPK.LightRGBW: case SPK.LightCCT: case SPK.LightDimming: { - if(device.spk == SPK.LightRGB) - { - string colorful = GetKeyValue(FunctionAttributeKey.Colorful, dicList); - if (!string.IsNullOrEmpty(colorful)) - { - targetView.btnIcon.UnSelectedImagePath = "FunctionIcon/Icon/groupControl.png"; - if (colorful == "on") - { - stateStr = Language.StringByID(StringId.onLogic); - } - else if (colorful == "off") - { - stateStr = Language.StringByID(StringId.offLogic); - } - - break; - } - } + string on_off = GetKeyValue("on_off", dicList); string brightness = GetKeyValue("brightness", dicList); if (on_off == "on" && brightness != "") @@ -1119,7 +1106,61 @@ } break; - + case SPK.GroupControl: //缇ゆ帶 + { + targetView.btnIcon.UnSelectedImagePath = "FunctionIcon/Icon/groupControl.png"; + string on_off = GetKeyValue("on_off", dicList); + string brightness = GetKeyValue("brightness", dicList); + string cct = GetKeyValue(FunctionAttributeKey.CCT, dicList); + string colorful = GetKeyValue(FunctionAttributeKey.Colorful, dicList); + if (on_off == "on" && brightness != "") + { + stateStr = Language.StringByID(StringId.onLogic) + brightness + "%"; + } + else if (on_off == "on") + { + stateStr = Language.StringByID(StringId.onLogic); + } + else if (on_off == "off") + { + stateStr = Language.StringByID(StringId.offLogic); + } + else if (brightness != "") + { + stateStr = brightness + "%"; + } + //鑹叉俯杩欎釜灞炴�ф墠鏈夋晥 + if (!string.IsNullOrEmpty(cct)) + { + stateStr += "," + Language.StringByID(StringId.ColorTemperature) + cct + "k"; + } + + if (!string.IsNullOrEmpty(colorful)) + { + stateStr += "," + Language.StringByID(StringId.ColorfulFunction); + if (colorful == "on") + { + stateStr += Language.StringByID(StringId.onLogic); + } + else if (colorful == "off") + { + stateStr += Language.StringByID(StringId.offLogic); + } + + break; + } + + string rgb = GetKeyValue("rgb", dicList); + if (!string.IsNullOrEmpty(rgb) && rgb.Length > 6) + { + targetView.btnStateColor.Visible = true; + targetView.btnStateColor.BackgroundColor = new LogicView.RGBColorView().GetBackgroundColor(rgb); + } + + + } + break; + case SPK.CurtainSwitch: { foreach (var dic in dicList) @@ -1689,6 +1730,66 @@ } } break; + case SPK.GroupControl://缇ゆ帶 + { + foreach (var dic in dicList) + { + string value = dic["value"]; + switch (dic["key"]) + { + case "on_off": + case "colorful": + { + if (value == "on") + { + button1.Text = Language.StringByID(StringId.onLogic); + } + else + { + button1.Text = Language.StringByID(StringId.offLogic); + } + } + break; + case "brightness": + { + if (button1 == null) + { + //鎬曡皟璇曡蒋浠朵贡涓婁笢瑗垮鑷存姏寮傚父 + break; + } + button1.Text = value + "%"; + } + break; + case "cct": + { + if (button1 == null) + { + //鎬曡皟璇曡蒋浠朵贡涓婁笢瑗垮鑷存姏寮傚父 + break; + } + button1.Text = value + "k"; + } + break; + case "rgb": + { + if (button1 == null) + { + //鎬曡皟璇曡蒋浠朵贡涓婁笢瑗垮鑷存姏寮傚父 + break; + } + if (!string.IsNullOrEmpty(value) && value.Length > 6) + { + button1.BackgroundColor = new LogicView.RGBColorView().GetBackgroundColor(value); + button1.Tag = value; + } + } + break; + + } + + } + } + break; case SPK.CurtainSwitch: { foreach (var dic in dicList) diff --git a/HDL_ON/UI/UI2/3-Intelligence/Automation/LogicMethod.cs b/HDL_ON/UI/UI2/3-Intelligence/Automation/LogicMethod.cs index 812dfa5..7472d73 100644 --- a/HDL_ON/UI/UI2/3-Intelligence/Automation/LogicMethod.cs +++ b/HDL_ON/UI/UI2/3-Intelligence/Automation/LogicMethod.cs @@ -187,6 +187,7 @@ var list2 = this.GetVideoDeviceList(); list.AddRange(list1); list.AddRange(list2); + list.AddRange(FunctionList.List.groupControls); #if DEBUG GetTestDevice(ref list, true); #endif @@ -499,7 +500,15 @@ { List<string> deviceStrTypeList = new List<string>(); deviceStrTypeList.Clear(); - + + //缇ゆ帶 + var gp = deviceList.Find((device) => + device.spk == SPK.GroupControl); + if (gp != null) + { + deviceStrTypeList.Add(Language.StringByID(StringId.GroupControl)); + } + ///鐏厜绫� var lightjosn = deviceList.Find((device) => device.spk == SPK.LightSwitch @@ -639,6 +648,11 @@ functionTypeList.Add(SPK.PanelSocket); functionTypeList.Add(SPK.ElectricSocket); } + //缇ゆ帶 + else if (deviceType == Language.StringByID(StringId.GroupControl)) + { + functionTypeList.Add(SPK.GroupControl); + } ///绐楀笜绫� else if (deviceType == Language.StringByID(StringId.Curtain)) { @@ -734,6 +748,7 @@ else { //鍏ㄩ儴鍖哄煙 + functionTypeList.Add(SPK.GroupControl); functionTypeList.Add(SPK.Peephole); functionTypeList.Add(SPK.Ev_Ipcam); functionTypeList.Add(SPK.LightSwitch); @@ -861,6 +876,7 @@ break; case target_if: { + deviceTypeList.Add(SPK.GroupControl); deviceTypeList.Add(SPK.LightSwitch); deviceTypeList.Add(SPK.LightRGB); deviceTypeList.Add(SPK.LightRGBW); diff --git a/HDL_ON/UI/UI2/3-Intelligence/Automation/TargetDeviceFunList.cs b/HDL_ON/UI/UI2/3-Intelligence/Automation/TargetDeviceFunList.cs index e828e1a..8b698be 100644 --- a/HDL_ON/UI/UI2/3-Intelligence/Automation/TargetDeviceFunList.cs +++ b/HDL_ON/UI/UI2/3-Intelligence/Automation/TargetDeviceFunList.cs @@ -56,6 +56,87 @@ #region 缂栬緫璁惧鐘舵�� switch (device.spk) { + //缇ゆ帶 + case SPK.GroupControl: + int bottom = 50; + int attributesNameId=0; + int count = 0; + foreach (var attr in (device as GroupControl).attributes) + { + if (attr.key == FunctionAttributeKey.OnOff || + attr.key == FunctionAttributeKey.Brightness || + attr.key == FunctionAttributeKey.CCT || + attr.key == FunctionAttributeKey.RGB || + attr.key == FunctionAttributeKey.Colorful) + { + LogicView.FunTypeView view = new LogicView.FunTypeView(); + view.btnState.Name = "缇ゆ帶"; + view.frameLayout.Y = count * Application.GetRealHeight(50); + fLayout.AddChidren(view.FLayoutView()); + count++; + switch (attr.key) + { + case FunctionAttributeKey.OnOff: + attributesNameId = StringId.switchLogic; + ///寮�鍏崇偣鍑讳簨浠� + view.btnClick.MouseUpEventHandler += (sender, e) => + { + SwitchViewMethod(device, view.btnState, 2); + }; + break; + case FunctionAttributeKey.Brightness: + attributesNameId = StringId.brightnesLogic; + view.btnState.Text = "5%";//浜у搧缁忕悊鏅撹緣瑕佹眰鏀圭殑 2021-11-06 + ///浜害鐐瑰嚮浜嬩欢 + view.btnClick.MouseUpEventHandler += (sender, e) => + { + BrightnessMethod(device, view.btnState, view.btnText.Text); + + }; + break; + case FunctionAttributeKey.CCT: + attributesNameId = StringId.ColorTemperature; + ///鑹叉俯鐐瑰嚮浜嬩欢 + view.btnClick.MouseUpEventHandler += (sender, e) => + { + ColorTemperatureMethod(device, view.btnState, view.btnText.Text); + + }; + break; + case FunctionAttributeKey.RGB: + attributesNameId = StringId.rgbsepan; + view.btnState.Tag = ""; + view.btnState.Width = Application.GetRealWidth(16); + view.btnState.Height = Application.GetRealWidth(16); + view.btnState.Radius = (uint)Application.GetRealWidth(8); + view.btnState.X = Application.GetRealWidth(375 - 48 - 16); + ///RGB鑹茬洏鐐瑰嚮浜嬩欢 + view.btnClick.MouseUpEventHandler += (sender, e) => + { + RgbColorDiskMethod(device, view.btnState, view.btnText.Text); + }; + break; + case FunctionAttributeKey.Colorful: + attributesNameId = StringId.ColorfulFunction; + ///寮�鍏崇偣鍑讳簨浠� + view.btnClick.MouseUpEventHandler += (sender, e) => + { + SwitchViewMethod(device, view.btnState, 2); + }; + break; + } + view.btnText.TextID = attributesNameId; + if (edit) + { + //鏄剧ず缂栬緫涔嬪墠鐨勮澶囩姸鎬� + GetEditDeviceState(device, index, view.btnState, null, null, null); + } + } + } + + //璁惧寤舵椂iewv + DelayView(fLayout, Application.GetRealHeight(50)* count); + break; //鎻掑骇(鏈塙SB) case SPK.PanelSocket: { @@ -168,8 +249,7 @@ ///RGB鑹茬洏 LogicView.FunTypeView rgbView = new LogicView.FunTypeView(); rgbView.frameLayout.Y = brightnessView.frameLayout.Bottom; - //rgbView.btnText.TextID = StringId.brightnesLogic; - rgbView.btnText.Text= "RGB鑹茬洏"; + rgbView.btnText.TextID = StringId.rgbsepan; rgbView.btnState.Tag = ""; rgbView.btnState.Width = Application.GetRealWidth(16); rgbView.btnState.Height = Application.GetRealWidth(16); @@ -815,6 +895,11 @@ } } break; + case SPK.GroupControl: + { + outputDevice.target_type = "5"; + } + break; } outputDevice.status.AddRange(dicSateteList); @@ -929,6 +1014,11 @@ } } break; + case SPK.GroupControl: + { + keyVlaue = "colorful"; + } + break; } //鏁版嵁灏佽 AddDictionary(keyVlaue, strValue); @@ -960,6 +1050,7 @@ case SPK.LightRGB: case SPK.LightRGBW: case SPK.LightCCT: + case SPK.GroupControl: { keyVlaue = "brightness"; } @@ -1004,6 +1095,7 @@ switch (device.spk) { case SPK.LightCCT: + case SPK.GroupControl: { keyVlaue = "cct"; } @@ -1037,6 +1129,7 @@ switch (device.spk) { case SPK.LightRGB: + case SPK.GroupControl: { keyVlaue = "rgb"; } diff --git a/HDL_ON/UI/UI2/3-Intelligence/Scene/SceneEditPage.cs b/HDL_ON/UI/UI2/3-Intelligence/Scene/SceneEditPage.cs index 1a39122..a85c1ea 100644 --- a/HDL_ON/UI/UI2/3-Intelligence/Scene/SceneEditPage.cs +++ b/HDL_ON/UI/UI2/3-Intelligence/Scene/SceneEditPage.cs @@ -433,14 +433,17 @@ var pack = pm.GetSceneInfo(scene.userSceneId); if (pack.Code == StateCode.SUCCESS) { - var sceneList = Newtonsoft.Json.JsonConvert.DeserializeObject<List<Scene>>(pack.Data.ToString()); - var tempScene = sceneList.Find((obj) => obj.userSceneId == scene.userSceneId); - if (tempScene != null) + if (pack.Data != null) { - scene.name = tempScene.name; - scene.delay = tempScene.delay; - scene.roomIds = tempScene.roomIds; - scene.functions = tempScene.functions; + var sceneList = Newtonsoft.Json.JsonConvert.DeserializeObject<List<Scene>>(pack.Data.ToString()); + var tempScene = sceneList.Find((obj) => obj.userSceneId == scene.userSceneId); + if (tempScene != null) + { + scene.name = tempScene.name; + scene.delay = tempScene.delay; + scene.roomIds = tempScene.roomIds; + scene.functions = tempScene.functions; + } } Application.RunOnMainThread(() => { diff --git a/HDL_ON/UI/UI2/3-Intelligence/Scene/SceneFunctionListChoosePage.cs b/HDL_ON/UI/UI2/3-Intelligence/Scene/SceneFunctionListChoosePage.cs index cc40903..dc80600 100644 --- a/HDL_ON/UI/UI2/3-Intelligence/Scene/SceneFunctionListChoosePage.cs +++ b/HDL_ON/UI/UI2/3-Intelligence/Scene/SceneFunctionListChoosePage.cs @@ -128,7 +128,11 @@ }; bodyView.AddChidren(functionListView); - foreach (var function in FunctionList.List.Functions) + List<Function> showList = new List<Function>(); + showList.AddRange(FunctionList.List.Functions); + showList.AddRange(FunctionList.List.groupControls); + + foreach (var function in showList) { if (!MainPage.SceneSupportFunctionList.Contains(function.spk)) { diff --git a/HDL_ON/UI/UI2/4-PersonalCenter/CombinedDimming/GroupControl.cs b/HDL_ON/UI/UI2/4-PersonalCenter/CombinedDimming/GroupControl.cs index 81ce887..6a36845 100644 --- a/HDL_ON/UI/UI2/4-PersonalCenter/CombinedDimming/GroupControl.cs +++ b/HDL_ON/UI/UI2/4-PersonalCenter/CombinedDimming/GroupControl.cs @@ -11,7 +11,7 @@ { public GroupControl() { - spk = "GroupControl"; + spk = "groupControl"; } /// <summary> /// 缇ゆ帶ID @@ -161,6 +161,32 @@ MainPage.Log($"缇ゆ帶鎺у埗澶辫触: {ex.Message}"); } } + + + public new List<FunctionAttributes> attributes { + get + { + var list = new List<FunctionAttributes>(); + + foreach (var temp in sids) + { + var light = FunctionList.List.GetLightList().Find((obj) => obj.sid == temp.sid); + if (light != null) + { + foreach(var attr in light.attributes) + { + if(list.Find((obj)=>obj.key == attr.key) == null) + { + list.Add(attr); + } + } + } + + } + + return list; + } + } } public class GroupControlFunction diff --git a/HDL_ON/UI/UI2/FuntionControlView/Light/ColorfulSettingPage.cs b/HDL_ON/UI/UI2/FuntionControlView/Light/ColorfulSettingPage.cs index 60ce741..8bb2a15 100644 --- a/HDL_ON/UI/UI2/FuntionControlView/Light/ColorfulSettingPage.cs +++ b/HDL_ON/UI/UI2/FuntionControlView/Light/ColorfulSettingPage.cs @@ -335,10 +335,26 @@ backAction?.Invoke(curColor) ; System.Collections.Generic.Dictionary<string, string> d = new System.Collections.Generic.Dictionary<string, string>(); if (isSatrtColor) + { d.Add(FunctionAttributeKey.ColorfulBegin, redColor + "," + greenColor + "," + blueColor); + function.SetAttrState(FunctionAttributeKey.ColorfulBegin, redColor + "," + greenColor + "," + blueColor); + var color = function.GetAttrState(FunctionAttributeKey.ColorfulEnd).Split(","); + var sendColorString = color[0] + "," + color[1] + "," + color[2]; + d.Add(FunctionAttributeKey.ColorfulEnd, sendColorString); + d.Add(FunctionAttributeKey.ColorfulTime, function.GetAttrState(FunctionAttributeKey.ColorfulTime)); + + } else + { + var color = function.GetAttrState(FunctionAttributeKey.ColorfulBegin).Split(","); + var sendColorString = color[0] + "," + color[1] + "," + color[2]; + d.Add(FunctionAttributeKey.ColorfulBegin, sendColorString); + d.Add(FunctionAttributeKey.ColorfulTime, function.GetAttrState(FunctionAttributeKey.ColorfulTime)); d.Add(FunctionAttributeKey.ColorfulEnd, redColor + "," + greenColor + "," + blueColor); + function.SetAttrState(FunctionAttributeKey.ColorfulEnd, redColor + "," + greenColor + "," + blueColor); + } Control.Ins.SendWriteCommand(function, d); + this.RemoveFromParent(); }; @@ -357,30 +373,52 @@ btnRecommenColor1.MouseUpEventHandler = (sender, e) => { curColor = btnCurColor.BackgroundColor = btnRecommenColor1.BackgroundColor; etCurColorHexInfo.Text = "FC4645"; + redColor = 252; + greenColor = 70; + blueColor = 69; + }; btnRecommenColor2.MouseUpEventHandler = (sender, e) => { curColor = btnCurColor.BackgroundColor = btnRecommenColor2.BackgroundColor; etCurColorHexInfo.Text = "FD834D"; + redColor = 253; + greenColor = 131; + blueColor = 77; }; btnRecommenColor3.MouseUpEventHandler = (sender, e) => { curColor = btnCurColor.BackgroundColor = btnRecommenColor3.BackgroundColor; etCurColorHexInfo.Text = "00AB11"; + redColor = 0; + greenColor = 171; + blueColor = 17; }; btnRecommenColor4.MouseUpEventHandler = (sender, e) => { curColor = btnCurColor.BackgroundColor = btnRecommenColor4.BackgroundColor; etCurColorHexInfo.Text = "28952E"; + redColor = 40; + greenColor = 149; + blueColor = 46; }; btnRecommenColor5.MouseUpEventHandler = (sender, e) => { curColor = btnCurColor.BackgroundColor = btnRecommenColor5.BackgroundColor; etCurColorHexInfo.Text = "45B7FD"; + redColor = 69; + greenColor = 183; + blueColor = 253; }; btnRecommenColor6.MouseUpEventHandler = (sender, e) => { curColor = btnCurColor.BackgroundColor = btnRecommenColor6.BackgroundColor; etCurColorHexInfo.Text = "794EFC"; + redColor = 121; + greenColor = 78; + blueColor = 252; }; btnRecommenColor7.MouseUpEventHandler = (sender, e) => { curColor = btnCurColor.BackgroundColor = btnRecommenColor7.BackgroundColor; etCurColorHexInfo.Text = "FFFFFF"; + redColor = 255; + greenColor = 255; + blueColor = 255; }; } diff --git a/HDL_ON/UI/UI2/FuntionControlView/Light/RGBPage.cs b/HDL_ON/UI/UI2/FuntionControlView/Light/RGBPage.cs index efa0d57..bb83402 100644 --- a/HDL_ON/UI/UI2/FuntionControlView/Light/RGBPage.cs +++ b/HDL_ON/UI/UI2/FuntionControlView/Light/RGBPage.cs @@ -404,6 +404,16 @@ function.SetAttrState(FunctionAttributeKey.Colorful, controlColorfulState); System.Collections.Generic.Dictionary<string, string> d = new System.Collections.Generic.Dictionary<string, string>(); d.Add(FunctionAttributeKey.Colorful, controlColorfulState); + if (controlColorfulState == "on") + { + var color = function.GetAttrState(FunctionAttributeKey.ColorfulBegin).Split(","); + var sendColorString = color[0] + "," + color[1] + "," + color[2]; + d.Add(FunctionAttributeKey.ColorfulBegin, sendColorString); + color = function.GetAttrState(FunctionAttributeKey.ColorfulEnd).Split(","); + sendColorString = color[0] + "," + color[1] + "," + color[2]; + d.Add(FunctionAttributeKey.ColorfulEnd, sendColorString); + d.Add(FunctionAttributeKey.ColorfulTime, function.GetAttrState(FunctionAttributeKey.ColorfulTime)); + } Control.Ins.SendWriteCommand(function, d); }catch(Exception ex) { -- Gitblit v1.8.0