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 HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/groupControl_blue.pngHDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/groupControl_white.pngHDL-ON_Android/HDL-ON_Android.csproj
@@ -400,7 +400,7 @@ <AndroidAsset Include="Assets\Phone\FunctionIcon\DoorLock\VideoDoorLockOpen1.png" /> <AndroidAsset Include="Assets\Phone\LogicIcon\selectlocation.png" /> <AndroidAsset Include="Assets\Phone\FunctionIcon\Light\ColorfulBar.png" /> <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\HomeIcon\GroupControl_blue.png" /> <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\HomeIcon\groupControl_blue.png" /> <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\HomeIcon\GroupControl_white.png" /> <AndroidAsset Include="Assets\h5\index.html" /> <AndroidAsset Include="Assets\h5\static\index.63b34199.css" /> 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 { HDL-ON_iOS/HDL-ON_iOS.csproj
@@ -1560,8 +1560,8 @@ <BundleResource Include="Resources\Phone\FunctionIcon\DoorLock\VideoDoorlockClose1.png" /> <BundleResource Include="Resources\Phone\FunctionIcon\DoorLock\VideoDoorLockOpen1.png" /> <BundleResource Include="Resources\Phone\FunctionIcon\Light\ColorfulBar.png" /> <BundleResource Include="Resources\Phone\FunctionIcon\Icon\HomeIcon\GroupControl_blue.png" /> <BundleResource Include="Resources\Phone\FunctionIcon\Icon\HomeIcon\GroupControl_white.png" /> <BundleResource Include="Resources\Phone\FunctionIcon\Icon\HomeIcon\groupControl_blue.png" /> <BundleResource Include="Resources\Phone\FunctionIcon\Icon\HomeIcon\groupControl_white.png" /> <BundleResource Include="Resources\h5\index.html" /> <BundleResource Include="Resources\h5\static\index.63b34199.css" /> <BundleResource Include="Resources\h5\static\images\coal-save-ic.png" /> 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 HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/groupControl_blue.pngHDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/groupControl_white.pngHDL_ON/Common/ApiUtlis.cs
@@ -401,6 +401,7 @@ } readSidList.Clear(); } //FunctionList.List.Functions.AddRange(FunctionList.List.groupControls); } if (readSidList.Count > 0) { 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> 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; } HDL_ON/Entity/Function/Function.cs
@@ -100,7 +100,7 @@ /// <returns></returns> public FunctionAttributes GetAttribute(string key) { var attr = attributes.Find((a) => a.key == key); var attr = GetFunctionAttributes().Find((a) => a.key == key); return attr; } @@ -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,7 +799,36 @@ public SceneFunction ConvertSceneFunction() { var sFunc = new SceneFunction(); foreach (var attr in attributes) var list = new List<FunctionAttributes>(); if (spk == SPK.GroupControl) { 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); } } } } } } else { list.AddRange(attributes); } foreach (var attr in list) { //窗帘同时发送开关跟百分比会有问题, if(spk == SPK.CurtainRoller || spk == SPK.CurtainTrietex || spk == SPK.CurtainDream) @@ -778,6 +840,9 @@ continue; } } }else if (spk == SPK.GroupControl) { sFunc.type = "5"; } string us = ""; @@ -1424,7 +1489,7 @@ /// <summary> /// 群控(自定义) /// </summary> public const string GroupControl = "GroupControl"; public const string GroupControl = "groupControl"; /// <summary> /// 通用开关 /// </summary> HDL_ON/Entity/Function/Scene.cs
@@ -560,6 +560,10 @@ private Function ConvertFunctionObject() { var localFunction = FunctionList.List.GetDeviceFunctionList().Find((obj) => obj.sid == sid); if(localFunction == null) { localFunction = FunctionList.List.groupControls.Find((obj) => obj.sid == sid); } return localFunction; } @@ -629,7 +633,12 @@ return sceneFunctionInfo; } /// <summary> /// 设备 /// 场景 =scene /// 群控=5 /// </summary> public string type = "0"; } /// <summary> HDL_ON/UI/MainPage.cs
@@ -121,6 +121,7 @@ SPK.AirSwitch, SPK.PanelSocket,SPK.ElectricSocket, SPK.MechanicalArm,SPK.IpCam_Imou, SPK.GroupControl }; @@ -529,7 +530,10 @@ public static int LoadEvent_BackAction() { int result = 0; Application.RunOnMainThread(() => { try { if (Inverter.Ins.H5Page.Parent != null) { @@ -553,6 +557,8 @@ { result = 2;//无法再后退,可以执行退到桌面 } else { if (BasePageView.ChildrenCount > 1) { int index = BasePageView.ChildrenCount - 1; @@ -596,6 +602,11 @@ { result = 2;//无法再后退,可以执行退到桌面 } } }catch(Exception ex) { MainPage.Log($"加载安卓后退异常:{ex.Message}"); } }); return result; } @@ -607,7 +618,10 @@ public static void Log(string msg) { #if DEBUG if (msg.Contains("收到数据")) if (msg.Contains("收到数据") || msg.Contains("发送") ) Console.WriteLine(msg); #endif } HDL_ON/UI/UI1-Login/LoginPage.cs
@@ -931,6 +931,7 @@ { name = "群控测试", collect = true, sid = "234567876545678765", uids = new List<string>() { "1405771024583090178", @@ -944,7 +945,7 @@ sids = new List<GroupControlFunction>() { new GroupControlFunction(){ sid = "light1", sid = lightRgb1.sid, spk = SPK.LightRGB, }, new GroupControlFunction(){ HDL_ON/UI/UI2/1-HomePage/HomePage.cs
@@ -80,6 +80,10 @@ /// </summary> Button btnChangeScene; /// <summary> /// 切换显示场组控按钮 /// </summary> Button btnChangeGroupControl; /// <summary> /// 功能显示区域 /// </summary> PageLayout contentView; @@ -92,6 +96,10 @@ /// </summary> VerticalScrolViewLayout sceneFunctionView; /// <summary> /// 组控控制区域 /// </summary> VerticalScrolViewLayout gcFunctionView; /// <summary> /// 功能区域集合 /// </summary> List<FrameLayout> functionViews; @@ -100,8 +108,11 @@ #region 区域变量 /// <summary> /// 当前显示对控制类型是否是设备功能控制 /// 0 功能 /// 1 场景 /// 2 群控 /// </summary> bool CurShowTypeIsFunction = true; int CurShowTypeContent = 0; #endregion #region 报警信息 @@ -149,10 +160,7 @@ bodyView.EndHeaderRefreshing(); Common.ApiUtlis.Ins.DownloadData(); LoadContentView(); if (!CurShowTypeIsFunction) { contentView.PageIndex = 1; } contentView.PageIndex = CurShowTypeContent; }; topView = new FrameLayout() { @@ -172,10 +180,7 @@ refreshLayout.EndHeaderRefreshing(); Common.ApiUtlis.Ins.DownloadData(); LoadContentView(); if(!CurShowTypeIsFunction) { contentView.PageIndex = 1; } contentView.PageIndex = CurShowTypeContent; }; topView = new FrameLayout() { @@ -565,6 +570,78 @@ bodyView.AddChidren(new Button() { Height = Application.GetRealHeight(20), BackgroundColor = 0x00000000 }); if (DB_ResidenceData.Instance.HomeGateway.isSupportGroupControl) { changeView = new FrameLayout() { //Y = Application.GetRealHeight(20) + topView.Bottom, Gravity = Gravity.CenterHorizontal, Width = Application.GetRealWidth(334), Height = Application.GetRealHeight(62), BackgroundImagePath = "Collection/ChangeViewbg.png", }; bodyView.AddChidren(changeView); btnChangeFunction = new Button() { X = Application.GetRealWidth(10), Width = Application.GetRealWidth(114 - 10), TextID = StringId.Functions, SelectedTextColor = CSS_Color.MainColor, TextColor = CSS_Color.PromptingColor1, TextSize = CSS_FontSize.HeadlineFontSize, TextAlignment = TextAlignment.Center, IsSelected = true, IsBold = true, }; changeView.AddChidren(btnChangeFunction); Button btnLine = new Button() { X = btnChangeFunction.Right, Gravity = Gravity.CenterVertical, Width = Application.GetRealWidth(1), Height = Application.GetRealHeight(14), BackgroundColor = CSS_Color.PromptingColor1, }; changeView.AddChidren(btnLine); btnChangeScene = new Button() { X = btnLine.Right, Width = Application.GetRealWidth(114 - 10), TextID = StringId.Scenes, SelectedTextColor = CSS_Color.MainColor, TextColor = CSS_Color.PromptingColor1, TextSize = CSS_FontSize.TextFontSize, TextAlignment = TextAlignment.Center, }; changeView.AddChidren(btnChangeScene); Button btnLine2 = new Button() { X = btnChangeScene.Right, Gravity = Gravity.CenterVertical, Width = Application.GetRealWidth(1), Height = Application.GetRealHeight(14), BackgroundColor = CSS_Color.PromptingColor1, }; changeView.AddChidren(btnLine2); btnChangeGroupControl = new Button() { X = btnLine2.Right, Width = Application.GetRealWidth(114 - 10), TextID = StringId.GroupControl, SelectedTextColor = CSS_Color.MainColor, TextColor = CSS_Color.PromptingColor1, TextSize = CSS_FontSize.TextFontSize, TextAlignment = TextAlignment.Center, }; changeView.AddChidren(btnChangeGroupControl); } else { changeView = new FrameLayout() { //Y = Application.GetRealHeight(20) + topView.Bottom, @@ -610,6 +687,7 @@ TextAlignment = TextAlignment.Center, }; changeView.AddChidren(btnChangeScene); } #endregion #region ContextView @@ -667,12 +745,12 @@ sceneFunctionView = new VerticalScrolViewLayout(); contentView.AddChidren(sceneFunctionView); LoadSceneFunctionControlZone(); if (CurShowTypeIsFunction) contentView.PageIndex = CurShowTypeContent; if (DB_ResidenceData.Instance.HomeGateway.isSupportGroupControl) { contentView.PageIndex = 0; }else { contentView.PageIndex = 1; gcFunctionView = new VerticalScrolViewLayout(); contentView.AddChidren(gcFunctionView); LoadGroupControlFunctionControlZone(); } LoadEvent_ChangeShowedFunctionType(); @@ -704,15 +782,13 @@ sceneFunctionView = new VerticalScrolViewLayout(); contentView.AddChidren(sceneFunctionView); LoadSceneFunctionControlZone(); if (CurShowTypeIsFunction) if (DB_ResidenceData.Instance.HomeGateway.isSupportGroupControl) { contentView.PageIndex = 0; gcFunctionView = new VerticalScrolViewLayout(); contentView.AddChidren(gcFunctionView); LoadGroupControlFunctionControlZone(); } else { contentView.PageIndex = 1; } contentView.PageIndex = CurShowTypeContent; LoadEvent_ChangeShowedFunctionType(); @@ -739,7 +815,7 @@ int index = 0; var list = new List<Function>(); list.AddRange(FunctionList.List.GetDeviceFunctionList()); list.AddRange(FunctionList.List.groupControls);//加入群控 //list.AddRange(FunctionList.List.groupControls);//加入群控 foreach (var function in list) { //音乐模块有主从关系,需要特殊处理 @@ -833,8 +909,93 @@ } deviceFunctionView.AddChidren(new Button { Height = Application.GetRealHeight(30) }); #endregion } /// <summary> /// 加载群控功能显示区域 /// </summary> void LoadGroupControlFunctionControlZone() { #region ContextView gcFunctionView.RemoveAll(); functionViews.Clear(); var rowView = new FrameLayout(); try { int index = 0; foreach (var function in FunctionList.List.groupControls) { if (index % 2 == 0) { rowView = new FrameLayout() { Height = Application.GetRealWidth(140), }; gcFunctionView.AddChidren(rowView); } var functionView_X = Application.GetRealWidth((182 + 7) * (index % 2)); if (index % 2 == 0) { functionView_X += Application.GetRealWidth(7); } var functionView = new FrameLayout() { X = functionView_X, Width = Application.GetRealWidth(182), Height = Application.GetRealWidth(140), Radius = (uint)Application.GetRealWidth(12), Tag = function.sid }; rowView.AddChidren(functionView); functionViews.Add(functionView); var btnbg = new Button() { UnSelectedImagePath = "Collection/Functionbg.png", SelectedImagePath = "Collection/FunctionOnbg.png", Tag = function.sid }; functionView.AddChidren(btnbg); LoadDeviceFunctionDiv(functionView, function); index++; } if (index == 0) { var view = new FrameLayout(); deviceFunctionView.AddChidren(view); var btnNoCollectionBg = new Button() { Y = Application.GetRealHeight(20), Gravity = Gravity.CenterHorizontal, Width = Application.GetRealWidth(180), Height = Application.GetRealWidth(180), UnSelectedImagePath = "Collection/NoCollectionBg.png", }; view.AddChidren(btnNoCollectionBg); var btnNoCollectionTip = new Button() { Height = Application.GetRealHeight(42), Y = btnNoCollectionBg.Bottom, TextAlignment = TextAlignment.Center, TextColor = CSS_Color.PromptingColor1, TextSize = CSS_FontSize.PromptFontSize_FirstLevel, //TextID = StringId.TipNoFunctionCollcetion, }; view.AddChidren(btnNoCollectionTip); } } catch (Exception ex) { MainPage.Log("homepage error : " + ex.Message); } gcFunctionView.AddChidren(new Button { Height = Application.GetRealHeight(30) }); #endregion } /// <summary> /// 加载场景功能显示区域 /// </summary> @@ -1060,6 +1221,7 @@ SelectedImagePath = "Collection/CollectionWhiteIcon.png", UnSelectedImagePath = "Collection/CollectionIcon.png", }; if (function.spk != SPK.GroupControl)//群控默认显示 view.AddChidren(btnCollection); //2020-12-16 如果是成员隐藏收藏功能 //if (!DB_ResidenceData.Instance.CurrentRegion.isOtherShare) HDL_ON/UI/UI2/1-HomePage/HomePageBLL.cs
@@ -334,16 +334,9 @@ btnChangeScene.TextSize = CSS.CSS_FontSize.TextFontSize; btnChangeScene.IsSelected = false; btnChangeScene.IsBold = false; CurShowTypeIsFunction = true; CurShowTypeContent = 0; contentView.PageIndex = 0; }; //var client = new BlufiClient(); //client.PostPackageLengthLimit = 128; //client.RequestDeviceScan(); //client.RequestDeviceStatus(); //client.BlufiDelegate.Blufi_DidReceiveDeviceScanResponse(); btnChangeScene.MouseUpEventHandler = (sender, e) => { @@ -353,7 +346,7 @@ btnChangeFunction.TextSize = CSS.CSS_FontSize.TextFontSize; btnChangeFunction.IsSelected = false; btnChangeFunction.IsBold = false; CurShowTypeIsFunction = false; CurShowTypeContent = 1; contentView.PageIndex = 1; }; @@ -368,7 +361,7 @@ btnChangeScene.IsSelected = false; btnChangeScene.IsBold = false; } else else if (contentView.PageIndex == 1) { btnChangeScene.IsSelected = true; btnChangeScene.TextSize = CSS.CSS_FontSize.HeadlineFontSize; @@ -378,6 +371,93 @@ btnChangeFunction.IsBold = false; } }; if (DB_ResidenceData.Instance.HomeGateway.isSupportGroupControl) { btnChangeGroupControl.MouseUpEventHandler = (sender, e) => { btnChangeFunction.IsSelected = false; btnChangeFunction.TextSize = CSS.CSS_FontSize.TextFontSize; btnChangeFunction.IsBold = false; btnChangeScene.TextSize = CSS.CSS_FontSize.TextFontSize; btnChangeScene.IsSelected = false; btnChangeScene.IsBold = false; btnChangeGroupControl.IsSelected = true; btnChangeGroupControl.TextSize = CSS.CSS_FontSize.HeadlineFontSize; btnChangeGroupControl.IsBold = true; CurShowTypeContent = 2; contentView.PageIndex = 2; }; btnChangeFunction.MouseUpEventHandler = (sender, e) => { btnChangeFunction.IsSelected = true; btnChangeFunction.TextSize = CSS.CSS_FontSize.HeadlineFontSize; btnChangeFunction.IsBold = true; btnChangeScene.TextSize = CSS.CSS_FontSize.TextFontSize; btnChangeScene.IsSelected = false; btnChangeScene.IsBold = false; CurShowTypeContent = 0; contentView.PageIndex = 0; btnChangeGroupControl.IsSelected = false; btnChangeGroupControl.TextSize = CSS.CSS_FontSize.TextFontSize; btnChangeGroupControl.IsBold = false; }; btnChangeScene.MouseUpEventHandler = (sender, e) => { btnChangeScene.IsSelected = true; btnChangeScene.TextSize = CSS.CSS_FontSize.HeadlineFontSize; btnChangeScene.IsBold = true; btnChangeFunction.TextSize = CSS.CSS_FontSize.TextFontSize; btnChangeFunction.IsSelected = false; btnChangeFunction.IsBold = false; CurShowTypeContent = 1; contentView.PageIndex = 1; btnChangeGroupControl.IsSelected = false; btnChangeGroupControl.TextSize = CSS.CSS_FontSize.TextFontSize; btnChangeGroupControl.IsBold = false; }; contentView.PageChange = (sender, e) => { if (contentView.PageIndex == 0) { btnChangeFunction.IsSelected = true; btnChangeFunction.TextSize = CSS.CSS_FontSize.HeadlineFontSize; btnChangeFunction.IsBold = true; btnChangeScene.TextSize = CSS.CSS_FontSize.TextFontSize; btnChangeScene.IsSelected = false; btnChangeScene.IsBold = false; btnChangeGroupControl.IsSelected = false; btnChangeGroupControl.TextSize = CSS.CSS_FontSize.TextFontSize; btnChangeGroupControl.IsBold = false; } else if (contentView.PageIndex == 1) { btnChangeScene.IsSelected = true; btnChangeScene.TextSize = CSS.CSS_FontSize.HeadlineFontSize; btnChangeScene.IsBold = true; btnChangeFunction.TextSize = CSS.CSS_FontSize.TextFontSize; btnChangeFunction.IsSelected = false; btnChangeFunction.IsBold = false; btnChangeGroupControl.IsSelected = false; btnChangeGroupControl.TextSize = CSS.CSS_FontSize.TextFontSize; btnChangeGroupControl.IsBold = false; } else if (contentView.PageIndex == 2) { btnChangeFunction.IsSelected = false; btnChangeFunction.TextSize = CSS.CSS_FontSize.TextFontSize; btnChangeFunction.IsBold = false; btnChangeScene.TextSize = CSS.CSS_FontSize.TextFontSize; btnChangeScene.IsSelected = false; btnChangeScene.IsBold = false; btnChangeGroupControl.IsSelected = true; btnChangeGroupControl.TextSize = CSS.CSS_FontSize.HeadlineFontSize; btnChangeGroupControl.IsBold = true; } }; } } /// <summary> HDL_ON/UI/UI2/2-Classification/FunctionControlZone.cs
@@ -446,6 +446,7 @@ }; if ( !SPK.ArmSensorSpkList().Contains(function.spk) && function.spk != SPK.DoorLock && function.spk != SPK.GroupControl && !SPK.EnvironDeviceSpkList().Contains( function.spk))//!DB_ResidenceData.Instance.CurrentRegion.isOtherShare && { bodyDiv.AddChidren(btnCollectionIcon); HDL_ON/UI/UI2/3-Intelligence/Automation/InpOrOutLogicMethod.cs
@@ -995,6 +995,7 @@ switch (outputTarget.target_type) { case "1": case "5": { //用sid找到设备; 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 != "") @@ -1116,6 +1103,60 @@ targetView.btnStateColor.BackgroundColor = new LogicView.RGBColorView().GetBackgroundColor(rgb); } } } 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; @@ -1681,6 +1722,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) 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 @@ -500,6 +501,14 @@ 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); 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; //插座(有USB) 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); @@ -806,6 +886,11 @@ } } break; case SPK.GroupControl: { outputDevice.target_type = "5"; } break; } outputDevice.status.AddRange(dicSateteList); @@ -920,6 +1005,11 @@ } } break; case SPK.GroupControl: { keyVlaue = "colorful"; } break; } //数据封装 AddDictionary(keyVlaue, strValue); @@ -951,6 +1041,7 @@ case SPK.LightRGB: case SPK.LightRGBW: case SPK.LightCCT: case SPK.GroupControl: { keyVlaue = "brightness"; } @@ -995,6 +1086,7 @@ switch (device.spk) { case SPK.LightCCT: case SPK.GroupControl: { keyVlaue = "cct"; } @@ -1028,6 +1120,7 @@ switch (device.spk) { case SPK.LightRGB: case SPK.GroupControl: { keyVlaue = "rgb"; } HDL_ON/UI/UI2/3-Intelligence/Scene/SceneEditPage.cs
@@ -433,6 +433,8 @@ var pack = pm.GetSceneInfo(scene.userSceneId); if (pack.Code == StateCode.SUCCESS) { if (pack.Data != null) { var sceneList = Newtonsoft.Json.JsonConvert.DeserializeObject<List<Scene>>(pack.Data.ToString()); var tempScene = sceneList.Find((obj) => obj.userSceneId == scene.userSceneId); if (tempScene != null) @@ -441,6 +443,7 @@ scene.delay = tempScene.delay; scene.roomIds = tempScene.roomIds; scene.functions = tempScene.functions; } } Application.RunOnMainThread(() => { @@ -482,12 +485,19 @@ scene.functions.Remove(scenefunction); continue; } try { //将spk实体里面的min max值放入场景功能实体里,要不然数据会丢失 2022-06-21 16:06:45 foreach (var tt in scenefunction.status) { foreach (var tt in scenefunction.status) { tt.min = scenefunction.localFunction.GetAttribute(tt.key).min; tt.max = scenefunction.localFunction.GetAttribute(tt.key).max; tt.valueList = scenefunction.localFunction.GetAttribute(tt.key).value; } }catch(Exception ex) { MainPage.Log($"场景加载功能列表异常:{ex.Message}"); } i++; var row = new RowLayout() 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)) { HDL_ON/UI/UI2/3-Intelligence/Scene/SetSceneFunctionInfoPage.cs
@@ -1903,7 +1903,7 @@ } LoadFunctionRow(onOffStatus); if (sceneFunction.localFunction.spk == SPK.LightRGB) if (sceneFunction.localFunction.spk == SPK.LightRGB || sceneFunction.localFunction.spk == SPK.GroupControl) { var colorfulStatus = sceneFunction.status.Find((obj) => obj.key == FunctionAttributeKey.Colorful); if (colorfulStatus != null) @@ -1982,6 +1982,9 @@ btnConfrim.MouseUpEventHandler = (sender, e) => { if (sceneFunction.localFunction.spk == SPK.GroupControl) { } else { if (isOnStatus) { if (isColorful) @@ -2001,11 +2004,10 @@ } else { if (isColorful) { } else { } sceneFunction.status.Clear(); sceneFunction.status.Add(new SceneFunctionStatus() { key = FunctionAttributeKey.OnOff, value = "off" }); } } var temp = scene.functions.Find((obj) => obj.sid == sceneFunction.sid); if (temp != null) @@ -2066,7 +2068,7 @@ { if (view.Tag.ToString() != FunctionAttributeKey.OnOff) { if (isColorful) if (isColorful && sceneFunction.localFunction.spk == SPK.LightRGB) { if(view.Tag.ToString() != FunctionAttributeKey.Colorful) { HDL_ON/UI/UI2/4-PersonalCenter/CombinedDimming/AddGroupControlPage.cs
@@ -549,6 +549,12 @@ var groupControlTypes = Newtonsoft.Json.JsonConvert.DeserializeObject<List<GroupControlType>>(pack.Data.ToString()); if (groupControlTypes != null && groupControlTypes.Count > 0) { //groupControlType = new GroupControlType { // type = "LIGHT", // typeName ="灯光控制", // spks = new List<string> { "light.switch" }, // spkAttrs = new List<string> { "on_off" } //}; groupControlType = groupControlTypes[0]; Application.RunOnMainThread(() => { LoadLightRow(lightList); 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 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; }; } HDL_ON/UI/UI2/FuntionControlView/Light/GroupControlPage_V2.cs
@@ -84,11 +84,11 @@ UnSelectedImagePath = "Collection/CollectionGrayIcon.png", IsSelected = function.collect }; controlView.AddChidren(btnCollection); btnCollection.MouseUpEventHandler += (sender, e) => { btnCollection.IsSelected = function.collect = btnCollection_Out.IsSelected = !btnCollection.IsSelected; function.CollectFunction(); }; //controlView.AddChidren(btnCollection); //btnCollection.MouseUpEventHandler += (sender, e) => { // btnCollection.IsSelected = function.collect = btnCollection_Out.IsSelected = !btnCollection.IsSelected; // function.CollectFunction(); //}; 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) {