From 2a88b9b559fd20f42d163d08b582f2d19ff329f4 Mon Sep 17 00:00:00 2001
From: wxr <wxr@hdlchina.com.cn>
Date: 星期一, 30 九月 2024 17:05:58 +0800
Subject: [PATCH] Update HDLLinphone.cs
---
HDL_ON/UI/UI2/2-Classification/FunctionControlZone.cs | 256 ++++++++++++++++++++++++++++++++++++++++++++------
1 files changed, 224 insertions(+), 32 deletions(-)
diff --git a/HDL_ON/UI/UI2/2-Classification/FunctionControlZone.cs b/HDL_ON/UI/UI2/2-Classification/FunctionControlZone.cs
index 4c33ddf..ddc33ad 100644
--- a/HDL_ON/UI/UI2/2-Classification/FunctionControlZone.cs
+++ b/HDL_ON/UI/UI2/2-Classification/FunctionControlZone.cs
@@ -1,5 +1,6 @@
锘縰sing System;
using HDL_ON.Entity;
+using HDL_ON.Stan;
using HDL_ON.UI.CSS;
using Shared;
@@ -38,12 +39,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()
@@ -57,17 +64,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();
@@ -78,27 +94,38 @@
}
else if (SPK.EvironmentSensorList().Contains(function.spk) || SPK.ArmSensorSpkList().Contains(function.spk)) //浼犳劅鍣ㄦ病鏈夊紑鍏虫寜閽�)
{
+ //if(function.spk == SPK.SensorPir || function.spk == SPK.SensorWater) { }
var powerLowTipAttr = function.attributes.Find((obj) => obj.key == FunctionAttributeKey.BatteryState);
- if (powerLowTipAttr != null)
+ if (powerLowTipAttr != null && !string.IsNullOrEmpty( powerLowTipAttr.state.ToString()))
{
- if (powerLowTipAttr.state.ToLower() == "low")
+ //鐢垫睜鎺т欢銆�
+ Button btnTipPowerLow = new Button()
{
- Button btnTipPowerLow = new Button()
- {
- X = Application.GetRealWidth(307),
- Y = Application.GetRealHeight(25),
- Width = Application.GetRealWidth(24),
- Height = Application.GetRealWidth(24),
- UnSelectedImagePath = "FunctionIcon/ArmSensor/PowerLowIcon.png",
- SelectedImagePath = "FunctionIcon/ArmSensor/PowerLowIcon.png",
- };
- this.AddChidren(btnTipPowerLow);
- }
+ X = Application.GetRealWidth(307),
+ Y = Application.GetRealHeight(45),
+ Width = Application.GetRealWidth(24),
+ Height = Application.GetRealWidth(24),
+ UnSelectedImagePath = "FunctionIcon/ArmSensor/Power80pIcon.png",
+ SelectedImagePath = "FunctionIcon/ArmSensor/PowerLowIcon.png",
+ IsSelected = powerLowTipAttr.state.ToLower() == "low"
+ };
+ this.AddChidren(btnTipPowerLow);
+
+ //var batteryControl = new BatteryPersentControl();
+ //batteryControl.X = Application.GetRealWidth(107);
+ //batteryControl.Y = Application.GetRealHeight(45);
+ //batteryControl.InitControl();
+ //this.AddChidren(batteryControl);
+ //batteryControl.SetValue(80);
+ //if (powerLowTipAttr.state.ToLower() == "low")
+ //{
+ // batteryControl.SetValue(20);
+ //}
+ //batteryControl.btnIcon.Visible = true;
+ //batteryControl.btnIcon.BackgroundColor = 0x88008800;
}
-
-
- else if (function.spk == SPK.SenesorMegahealth)
+ else if (function.spk == SPK.SenesorMegahealth || function.spk == SPK.SensorMmvPose)
{
var btnStatus = new Button()
{
@@ -113,8 +140,6 @@
};
bodyDiv.AddChidren(btnStatus);
-
-
var tempStatus = function.attributes.Find((sta) => sta.key == FunctionAttributeKey.TargetStatus);
if (tempStatus != null)
{
@@ -122,7 +147,7 @@
switch (tempStatus.state)
{//0绌猴紝1璧帮紝2璺戯紝3鍧愶紝4璺屽�掞紝5绔�
case "0":
- btnStatus.TextID = StringId.SensorNormalState;
+ btnStatus.TextID = StringId.wuren;
btnStatus.TextColor = CSS_Color.MainColor;
break;
case "1":
@@ -176,11 +201,94 @@
}
+ 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()
@@ -251,6 +359,10 @@
{
ClothesHangerFragment();
}
+ else if(function.spk == SPK.IpCam_Imou || function.spk == SPK.ElectricEnergy || function.spk ==SPK.AirSwitch || function.spk == SPK.AirSwitchP3)
+ {
+
+ }
else
{
#region 鍔犺浇寮�鍏虫寜閽�
@@ -259,7 +371,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()
{
@@ -317,6 +429,58 @@
}
+ /// <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>
/// 鍔犺浇鎺у埗鍗$墖鍖哄煙
@@ -368,19 +532,20 @@
UnSelectedImagePath = "Collection/CollectionGrayIcon.png",
IsSelected = function.collect
};
- if ( !SPK.ArmSensorSpkList().Contains(function.spk)
- && function.spk != SPK.DoorLock
- && !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.SenesorMegahealth)
+ if(function.spk == SPK.SensorPir || function.spk == SPK.SensorPirHold || function.spk == SPK.SenesorMegahealth || function.spk == SPK.SensorMmvPose)
{
bodyDiv.AddChidren(btnCollectionIcon);
}
- if (!function.online)
+ if (!function.isOnline())
{
bodyDiv.BackgroundColor = CSS_Color.PromptingColor2;
btnOffline = new Button()
@@ -395,6 +560,19 @@
};
bodyDiv.AddChidren(btnOffline);
}
+ //鎺掑簭
+ //btnIcon.MouseLongEventHandler = (sender, e) => {
+ // OrderEvent();
+ //};
+ //btnName.MouseLongEventHandler = (sender, e) => {
+ // OrderEvent();
+ //};
+ //btnFromFloor.MouseLongEventHandler = (sender, e) => {
+ // OrderEvent();
+ //};
+ //bodyDiv.MouseLongEventHandler = (sender, e) => {
+ // OrderEvent();
+ //};
}
/// <summary>
@@ -407,6 +585,7 @@
case SPK.LightDimming:
case SPK.LightRGBW:
case SPK.LightRGB:
+ case SPK.LightCCT:
#region Dimmer
var btnDimmerMinValues = new Button()
{
@@ -464,6 +643,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()
{
@@ -473,7 +660,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);
@@ -504,7 +691,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)
@@ -549,6 +736,11 @@
}
/// <summary>
+ /// 鎺掑簭浜嬩欢
+ /// </summary>
+ public Action OrderEvent;
+
+ /// <summary>
/// 鍔犺浇闊充箰鍔熻兘鎺у埗鍗$墖
/// </summary>
void MusicFragment()
--
Gitblit v1.8.0