From cbc156bc38d8b8eae7aef60cb186ab2b52fa701f Mon Sep 17 00:00:00 2001 From: wxr <wxr@hdlchina.com.cn> Date: 星期二, 16 七月 2024 13:59:56 +0800 Subject: [PATCH] 增加全部挂断 --- HDL_ON/UI/UI2/2-Classification/FunctionControlZone.cs | 391 ++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 378 insertions(+), 13 deletions(-) diff --git a/HDL_ON/UI/UI2/2-Classification/FunctionControlZone.cs b/HDL_ON/UI/UI2/2-Classification/FunctionControlZone.cs index 9a7fe8d..80844c1 100644 --- a/HDL_ON/UI/UI2/2-Classification/FunctionControlZone.cs +++ b/HDL_ON/UI/UI2/2-Classification/FunctionControlZone.cs @@ -1,7 +1,6 @@ 锘縰sing System; using HDL_ON.Entity; using HDL_ON.UI.CSS; -using HDL_ON.UI.Music; using Shared; namespace HDL_ON.UI @@ -9,7 +8,7 @@ public partial class FunctionControlZone : FrameLayout { #region 鍖哄煙鎺т欢 - static FrameLayout bodyDiv; + FunctionControlZone bodyDiv; /// <summary> /// 鍔熻兘/鍦烘櫙icon /// </summary> @@ -26,6 +25,11 @@ /// 鏀惰棌鎸夐挳 /// </summary> Button btnCollectionIcon; + /// <summary> + /// 绂荤嚎鏂囨湰 + /// </summary> + Button btnOffline; + #endregion #region 鍖哄煙鍙橀噺 @@ -34,12 +38,18 @@ /// 鏄惁鍦ㄨ皟鍏� /// </summary> bool onDimmerBar; + /// <summary> + /// 鍒犻櫎璁惧鍚庡洖璋冪粰鐣岄潰鍒锋柊 + /// </summary> + Action action; + #endregion - public FunctionControlZone(Function func) + public FunctionControlZone(Function func,Action action) { bodyDiv = this; bodyDiv.Tag = func.sid; function = func; + this.action = action; } public override void RemoveFromParent() @@ -53,16 +63,26 @@ /// </summary> public void LoadFunctionDiv() { - //todo 澧炲姞璁惧锛屽鍔犲姛鑳藉垪琛ㄥ崱鐗� if (function == null) { this.RemoveFromParent(); return; } - LoadDiv(); + //if (function.spk == SPK.IpCam_Imou) + //{ + // InitIpCamDiv(); + //} + //else + { + LoadDiv(); + } btnIcon.UnSelectedImagePath = $"FunctionIcon/Icon/{function.IconName}.png"; - + if(function.spk == SPK.GroupControl || function.spk == SPK.CommonSeries) + { + //btnIcon.UnSelectedImagePath = $"FunctionIcon/Icon/lightswitch.png"; + btnIcon.UnSelectedImagePath = $"FunctionIcon/Icon/groupControl.png"; + } if (SPK.CurtainSpkList().Contains(function.spk)) {//绐楀笜娌℃湁寮�鍏虫寜閽� CurtainFragment(); @@ -81,7 +101,7 @@ Button btnTipPowerLow = new Button() { X = Application.GetRealWidth(307), - Y = Application.GetRealHeight(25), + Y = Application.GetRealHeight(45), Width = Application.GetRealWidth(24), Height = Application.GetRealWidth(24), UnSelectedImagePath = "FunctionIcon/ArmSensor/PowerLowIcon.png", @@ -90,12 +110,248 @@ this.AddChidren(btnTipPowerLow); } } + + + + else if (function.spk == SPK.SenesorMegahealth || function.spk == SPK.SensorMmvPose ) + { + var btnStatus = new Button() + { + X = Application.GetRealWidth(51), + Y = Application.GetRealHeight(64), + Height = Application.GetRealHeight(18), + TextColor = CSS_Color.MainColor, + TextSize = CSS_FontSize.PromptFontSize_SecondaryLevel, + Text = "", + TextAlignment = TextAlignment.CenterLeft, + Tag = function.sid + "_SenesorMegahealth_Status" + }; + bodyDiv.AddChidren(btnStatus); + + + + var tempStatus = function.attributes.Find((sta) => sta.key == FunctionAttributeKey.TargetStatus); + if (tempStatus != null) + { + + switch (tempStatus.state) + {//0绌猴紝1璧帮紝2璺戯紝3鍧愶紝4璺屽�掞紝5绔� + case "0": + btnStatus.TextID = StringId.wuren; + btnStatus.TextColor = CSS_Color.MainColor; + break; + case "1": + btnStatus.TextID = StringId.SomeoneIn; + btnStatus.TextColor = CSS_Color.WarningColor; + break; + case "2": + if (function.extSet.labModel) + { + btnStatus.TextID = StringId.SomeoneRunning; + btnStatus.TextColor = CSS_Color.WarningColor; + } + else + { + btnStatus.TextID = StringId.SomeoneIn; + btnStatus.TextColor = CSS_Color.WarningColor; + } + break; + case "3": + if (function.extSet.labModel) + { + btnStatus.TextID = StringId.SomeoneSitting; + btnStatus.TextColor = CSS_Color.WarningColor; + } + else + { + btnStatus.TextID = StringId.SomeoneIn; + btnStatus.TextColor = CSS_Color.WarningColor; + } + break; + case "4": + btnStatus.TextID = StringId.SomeoneFell; + btnStatus.TextColor = CSS_Color.WarningColor; + break; + case "5": + if (function.extSet.labModel) + { + btnStatus.TextID = StringId.SomeoneStanding; + btnStatus.TextColor = CSS_Color.WarningColor; + } + else + { + btnStatus.TextID = StringId.SomeoneIn; + btnStatus.TextColor = CSS_Color.WarningColor; + } + break; + } + + + } + + } + + else if (SPK.ArmSensorSpkList().Contains(function.spk)) + { + var btnStatus = new Button() + { + X = Application.GetRealWidth(51), + Y = Application.GetRealHeight(64), + Height = Application.GetRealHeight(18), + TextColor = CSS_Color.MainColor, + TextSize = CSS_FontSize.PromptFontSize_SecondaryLevel, + Text = "", + TextAlignment = TextAlignment.CenterLeft, + Tag = function.sid + "_Sensor_Status" + }; + bodyDiv.AddChidren(btnStatus); + + var alarm_status = function.attributes.Find((sta) => sta.key == FunctionAttributeKey.AlarmStatus); + if(alarm_status!= null) + { + if (alarm_status.curValue.ToString() == "normal") + { + btnStatus.TextID = StringId.SensorNormalState; + btnStatus.TextColor = CSS_Color.MainColor; + } + else + { + btnStatus.TextID = StringId.InAlarm; + btnStatus.TextColor = CSS_Color.WarningColor; + } + } + else + { + alarm_status = function.attributes.Find((sta) => sta.key == "contact_status"); + if (alarm_status != null) + { + if (alarm_status.curValue.ToString() == "close") + { + btnStatus.TextID = StringId.Shut; + btnStatus.TextColor = CSS_Color.MainColor; + } + else + { + if (function.spk == SPK.SensorDryContact || function.spk == SPK.SensorDryContact2) + { + btnStatus.TextID = StringId.DryBreak; + } + else + { + btnStatus.TextID = StringId.Open; + } + btnStatus.TextColor = CSS_Color.WarningColor; + } + } + else + { + alarm_status = function.attributes.Find((sta) => sta.key == "people_status"); + if (alarm_status != null) + { + if (alarm_status.curValue.ToString() == "false") + { + btnStatus.TextID = StringId.wuren; + btnStatus.TextColor = CSS_Color.MainColor; + } + else + { + btnStatus.TextID = StringId.youren; + btnStatus.TextColor = CSS_Color.WarningColor; + } + } + } + } + + } + + } + else if (function.spk == SPK.DoorLock) + { + btnIcon.UnSelectedImagePath = "FunctionIcon/DoorLock/DoorLock.png"; + } + else if (function.spk == SPK.VideoDoorLock) + { + btnIcon.UnSelectedImagePath =UI2.FuntionControlView.VideoDoorLock.CommonMethod.Current.GetVideoDoorLockIcon(UI2.FuntionControlView.VideoDoorLock.CommonMethod.Comerom.function); + } + else if (function.spk == SPK.AvZkAiks) + { + //闅愯棌寮�鍏虫寜閽� + btnIcon.UnSelectedImagePath = "AksIcon/aks.png"; + } + else if(function.spk == SPK.GroupControl) { } + else if (function.spk == SPK.HvacCac) + { + var btnHumidityIcon = new Button() + { + X = Application.GetRealWidth(120), + Y = Application.GetRealHeight(66), + Width = Application.GetMinRealAverage(16), + Height = Application.GetMinRealAverage(18), + UnSelectedImagePath = "FunctionIcon/CAC/HvacCacHumidityIcon.png", + }; + bodyDiv.AddChidren(btnHumidityIcon); + var btnHumidityValues = new TextButton() + { + X = Application.GetRealWidth(140), + Y = Application.GetRealHeight(64), + Height = Application.GetRealHeight(18), + TextColor = 0xFF161616, + TextSize = CSS_FontSize.TextFontSize, + Text = function.GetAttrState(FunctionAttributeKey.RoomHumidity) + "%", + TextAlignment = TextAlignment.CenterLeft, + Tag = function.sid + "_Humidity", + }; + btnHumidityValues.Width = btnHumidityValues.GetTextWidth(); + bodyDiv.AddChidren(btnHumidityValues); + + Button btnTempIcon = new Button() + { + X = Application.GetRealWidth(51), + Y = Application.GetRealHeight(66), + Width = Application.GetMinRealAverage(17), + Height = Application.GetMinRealAverage(17), + UnSelectedImagePath = "FunctionIcon/CAC/HvacCacTempIcon.png", + }; + bodyDiv.AddChidren(btnTempIcon); + + var btnTempValues = new TextButton() + { + X = Application.GetRealWidth(70), + Y = Application.GetRealHeight(64), + Height = Application.GetRealHeight(18), + TextColor = 0xFF161616, + TextSize = CSS_FontSize.TextFontSize, + Text = function.GetAttrState(FunctionAttributeKey.RoomTemp) + "掳C", + TextAlignment = TextAlignment.CenterLeft, + Tag = function.sid + "_Temp", + }; + btnTempValues.Width = btnTempValues.GetTextWidth(); + bodyDiv.AddChidren(btnTempValues); + + var btnJinMaoIcon = new Button() + { + X = Application.GetRealWidth(238), + Y = Application.GetRealHeight(64), + Width = Application.GetRealWidth(102), + Height = Application.GetRealHeight(29), + UnSelectedImagePath = "FunctionIcon/CAC/JinMaoIcon.png" + }; + bodyDiv.AddChidren(btnJinMaoIcon); + + + + } + else if (function.spk == SPK.AcstParent) { } else { if (function.spk == SPK.ClothesHanger)//鏅捐。鏋� { ClothesHangerFragment(); + } + else if(function.spk == SPK.IpCam_Imou || function.spk == SPK.ElectricEnergy || function.spk ==SPK.AirSwitch || function.spk == SPK.AirSwitchP3) + { + } else { @@ -105,7 +361,7 @@ /// 寮�鍏虫寜閽� /// </summary> Button btnSwitch; - if (function.spk == SPK.LightRGB || function.spk == SPK.LightDimming) + if (function.spk == SPK.LightRGBW || function.spk == SPK.LightCCT || function.spk == SPK.LightRGB || function.spk == SPK.LightDimming) { btnSwitch = new Button() { @@ -160,6 +416,60 @@ LoadEvent_DivSkipEvent(); LoadEvent_FunctionCollection(); + + + } + /// <summary> + /// 鍔犺浇ip鎽勫儚澶村崱鐗� + /// </summary> + private void InitIpCamDiv() + { + btnIcon = new Button() + { + X = Application.GetRealWidth(10), + Y = Application.GetRealHeight(15), + Width = Application.GetRealWidth(32), + Height = Application.GetRealWidth(32), + }; + bodyDiv.AddChidren(btnIcon); + + btnName = new Button() + { + X = Application.GetRealWidth(8 + 10 + 32), + Y = Application.GetRealHeight(10), + Width = Application.GetRealWidth(200), + Height = Application.GetRealHeight(24), + Text = function.name, + TextAlignment = TextAlignment.CenterLeft, + TextColor = CSS_Color.FirstLevelTitleColor, + TextSize = CSS_FontSize.TextFontSize, + }; + bodyDiv.AddChidren(btnName); + + btnFromFloor = new Button() + { + X = Application.GetRealWidth(8 + 10 + 32), + Y = Application.GetRealHeight(10 + 24), + Width = Application.GetRealWidth(200), + Height = Application.GetRealHeight(18), + Text = function.GetRoomListName(), + TextAlignment = TextAlignment.CenterLeft, + TextColor = CSS_Color.PromptingColor1, + TextSize = CSS_FontSize.PromptFontSize_FirstLevel, + }; + bodyDiv.AddChidren(btnFromFloor); + + btnCollectionIcon = new Button() + { + X = Application.GetRealWidth(299), + Y = Application.GetRealHeight(10), + Width = Application.GetMinRealAverage(40), + Height = Application.GetMinRealAverage(40), + SelectedImagePath = "Collection/CollectionIcon.png", + UnSelectedImagePath = "Collection/CollectionGrayIcon.png", + IsSelected = function.collect + }; + } /// <summary> @@ -212,10 +522,47 @@ UnSelectedImagePath = "Collection/CollectionGrayIcon.png", IsSelected = function.collect }; - if ( !SPK.ArmSensorSpkList().Contains(function.spk) && !SPK.EnvironDeviceSpkList().Contains( function.spk))//!DB_ResidenceData.Instance.CurrentRegion.isOtherShare && + if ( !SPK.ArmSensorSpkList().Contains(function.spk)&& + function.spk != SPK.DoorLock + && function.spk != SPK.GroupControl + && !SPK.EnvironDeviceSpkList().Contains( function.spk)) { bodyDiv.AddChidren(btnCollectionIcon); } + + if(function.spk == SPK.SensorPir || function.spk == SPK.SensorPirHold || function.spk == SPK.SenesorMegahealth || function.spk == SPK.SensorMmvPose) + { + bodyDiv.AddChidren(btnCollectionIcon); + } + + if (!function.isOnline()) + { + bodyDiv.BackgroundColor = CSS_Color.PromptingColor2; + btnOffline = new Button() + { + X = Application.GetRealWidth(8 + 10 + 32), + Y = Application.GetRealHeight(28 + 24), + Height = Application.GetRealHeight(30), + TextID = StringId.DeviceOffline, + TextColor = CSS_Color.WarningColor, + TextSize = CSS_FontSize.PromptFontSize_FirstLevel, + TextAlignment = TextAlignment.CenterLeft + }; + bodyDiv.AddChidren(btnOffline); + } + //鎺掑簭 + //btnIcon.MouseLongEventHandler = (sender, e) => { + // OrderEvent(); + //}; + //btnName.MouseLongEventHandler = (sender, e) => { + // OrderEvent(); + //}; + //btnFromFloor.MouseLongEventHandler = (sender, e) => { + // OrderEvent(); + //}; + //bodyDiv.MouseLongEventHandler = (sender, e) => { + // OrderEvent(); + //}; } /// <summary> @@ -226,7 +573,9 @@ switch (function.spk) { case SPK.LightDimming: + case SPK.LightRGBW: case SPK.LightRGB: + case SPK.LightCCT: #region Dimmer var btnDimmerMinValues = new Button() { @@ -284,6 +633,14 @@ /// </summary> void CurtainFragment() { + var onoffString = function.GetAttrState(FunctionAttributeKey.OnOff); + var percent = onoffString == "off" ? 0 : 100; + if (function.GetAttributes().Contains(FunctionAttributeKey.Percent)) + { + string percentString = function.GetAttrState(FunctionAttributeKey.Percent); + int.TryParse(percentString, out percent); + } + #region Curtain var btnCurtainClose = new Button() { @@ -293,7 +650,7 @@ Height = Application.GetMinRealAverage(32), UnSelectedImagePath = "FunctionIcon/Curtain/CurtainCloseIcon.png", SelectedImagePath = "FunctionIcon/Curtain/CurtainCloseOnIcon.png", - IsSelected = function.GetAttrState(FunctionAttributeKey.OnOff) == "off", + IsSelected = percent == 0, Tag = function.sid + "_off" }; bodyDiv.AddChidren(btnCurtainClose); @@ -324,7 +681,7 @@ UnSelectedImagePath = "FunctionIcon/Curtain/CurtainOpenIcon.png", SelectedImagePath = "FunctionIcon/Curtain/CurtainOpenOnIcon.png", Tag = function.sid + "_on", - IsSelected = function.GetAttrState(FunctionAttributeKey.OnOff) == "on", + IsSelected = percent != 0, }; bodyDiv.AddChidren(btnCurtainOpen); if (function.spk == SPK.CurtainRoller) @@ -332,7 +689,7 @@ btnCurtainOpen.UnSelectedImagePath = "FunctionIcon/Curtain/CurtainUpIcon.png"; btnCurtainOpen.SelectedImagePath = "FunctionIcon/Curtain/CurtainUpIconOn.png"; } - LoadEvent_ControlCurtain(btnCurtainStop, btnCurtainOpen, btnCurtainClose, function); + LoadEvent_ControlCurtain(btnCurtainStop, btnCurtainOpen, btnCurtainClose); #endregion } /// <summary> @@ -367,6 +724,11 @@ } + + /// <summary> + /// 鎺掑簭浜嬩欢 + /// </summary> + public Action OrderEvent; /// <summary> /// 鍔犺浇闊充箰鍔熻兘鎺у埗鍗$墖 @@ -408,7 +770,7 @@ SelectedImagePath = "MusicIcon/nextSelected.png", }; bodyDiv.AddChidren(btnNext); - LoadEvent_ControlMusic(btnPlay, btnNext, btnPrev, function as A31MusicModel); + LoadEvent_ControlMusic(btnPlay, btnNext, btnPrev, function); #endregion } @@ -437,5 +799,8 @@ }; bodyDiv.AddChidren(btnLastStates); } + + + } } \ No newline at end of file -- Gitblit v1.8.0