From 068c68295cad1967f7aafb4e5e951260ef03d4ce Mon Sep 17 00:00:00 2001 From: wei <kaede@kaededeMacBook-Air.local> Date: 星期五, 09 七月 2021 09:16:43 +0800 Subject: [PATCH] 状态属性更改,不要轻易合并 --- HDL_ON/UI/UI2/1-HomePage/HomePageBLL.cs | 106 +++++++++++++++++++++++++++++++++++++++++----------- 1 files changed, 83 insertions(+), 23 deletions(-) diff --git a/HDL_ON/UI/UI2/1-HomePage/HomePageBLL.cs b/HDL_ON/UI/UI2/1-HomePage/HomePageBLL.cs index 1883317..ed924af 100644 --- a/HDL_ON/UI/UI2/1-HomePage/HomePageBLL.cs +++ b/HDL_ON/UI/UI2/1-HomePage/HomePageBLL.cs @@ -27,11 +27,27 @@ /// </summary> public static void LoadEvent_RefreshEnvirIndoorHumi() { - Application.RunOnMainThread(() => + Application.RunOnMainThread((Action)(() => { if (bodyView != null) { var humiSensorList = FunctionList.List.GetEnvirSensorsList().FindAll((obj) => obj.spk == SPK.SensorHumidity); + var enviSensorList = FunctionList.List.GetEnvirSensorsList().FindAll((obj) => obj.spk == SPK.SensorEnvironment); + foreach (var enviTemp in enviSensorList) + { + var tempAttr = enviTemp.attributes.Find((obj) => obj.key == "humidity"); + if (tempAttr != null) + { + var newTemp = new Function() + { + name = enviTemp.name, + sid = enviTemp.sid, + deviceId = enviTemp.deviceId, + attributes = new List<FunctionAttributes> { new FunctionAttributes { key = "value", state = tempAttr.state } }, + }; + humiSensorList.Add(newTemp); + } + } double humiTotalValues = 0; foreach (var temp in humiSensorList) { @@ -45,19 +61,35 @@ } bodyView.btnIndoorHumiValues.Width = bodyView.btnIndoorHumiValues.GetTextWidth(); } - }); + })); } /// <summary> /// 鏇存柊瀹ゅ唴浼犳劅鍣ㄦ暟鎹�-鏅氱偣 /// </summary> public static void LoadEvent_RefreshEnvirIndoorTemp() - { - Application.RunOnMainThread(() => + { + Application.RunOnMainThread((Action)(() => { if (bodyView != null) { var tempSensorList = FunctionList.List.GetEnvirSensorsList().FindAll((obj) => obj.spk == SPK.SensorTemperature); + var enviSensorList = FunctionList.List.GetEnvirSensorsList().FindAll((obj) => obj.spk == SPK.SensorEnvironment); + foreach (var enviTemp in enviSensorList) + { + var tempAttr = enviTemp.attributes.Find((obj) => obj.key == "temperature"); + if (tempAttr != null) + { + var newTemp = new Function() + { + name = enviTemp.name, + sid = enviTemp.sid, + deviceId = enviTemp.deviceId, + attributes = new List<FunctionAttributes> { new FunctionAttributes { key = "value", state = tempAttr.state } }, + }; + tempSensorList.Add(newTemp); + } + } double tempTotalValues = 0; foreach (var temp in tempSensorList) { @@ -71,7 +103,7 @@ } bodyView.btnIndoorTempValues.Width = bodyView.btnIndoorTempValues.GetTextWidth(); } - }); + })); } /// <summary> @@ -90,6 +122,13 @@ /// </summary> void CheckLinkStatus() { + //Dome妯″紡 + if (MainPage.NoLoginMode) + { + bodyView.btnLinkStateTip.BackgroundColor = CSS.CSS_Color.MainColor; + return; + } + if (!Control.Ins.GatewayOnline_Local && !Control.Ins.GatewayOnline_Cloud) { bodyView.btnLinkStateTip.BackgroundColor = CSS.CSS_Color.LinkTipFail; @@ -226,7 +265,7 @@ /// </summary> public static void UpdataFunctionStates(Function function) { - Application.RunOnMainThread(() => + Application.RunOnMainThread((Action)(() => { try { @@ -244,7 +283,7 @@ } else { - state = function.trait_on_off.curValue.ToString() == "on"; + state = function.trait_on_off.state.ToString() == "on"; } for (int i = 0; i < view.ChildrenCount; i++) { @@ -276,7 +315,7 @@ { MainPage.Log($"HomePage updata funciton states error {ex.Message}"); } - }); + })); } /// <summary> @@ -352,11 +391,18 @@ btnSwitch.IsSelected = !btnSwitch.IsSelected; new System.Threading.Thread(() => { - function.trait_on_off.curValue = btnSwitch.IsSelected ? "on" : "off"; + if(SPK.NotStatusSpkList.Contains(function.spk)) + { + System.Threading.Thread.Sleep(1000); + Application.RunOnMainThread(() => { + btnSwitch.IsSelected = !btnSwitch.IsSelected; + }); + } + function.trait_on_off.state = btnSwitch.IsSelected ? "on" : "off"; Dictionary<string, string> d = new Dictionary<string, string>(); if (function.spk == SPK.LightDimming || function.spk == SPK.LightRGB) { - d.Add(FunctionAttributeKey.OnOff, function.trait_on_off.curValue.ToString()); + d.Add(FunctionAttributeKey.OnOff, function.trait_on_off.state.ToString()); if (btnSwitch.IsSelected) { d.Add(FunctionAttributeKey.Brightness, function.lastBrightness.ToString()); @@ -370,7 +416,7 @@ } else { - d.Add("on_off", function.trait_on_off.curValue.ToString()); + d.Add("on_off", function.trait_on_off.state.ToString()); Control.Ins.SendWriteCommand(function, d); } }) @@ -381,21 +427,35 @@ /// <summary> /// 鍔犺浇鐢佃鎺у埗浜嬩欢 /// </summary> - /// <param name="tV"></param> - /// <param name="button"></param> - void LoadEvent_ControlTV(Function tV, Button button) + /// <param name="function"></param> + /// <param name="btnSwitch"></param> + void LoadEvent_ControlTV(Function function, Button btnSwitch) { - button.MouseUpEventHandler = (sender, e) => + btnSwitch.MouseUpEventHandler = (sender, e) => { if (DB_ResidenceData.Instance.GatewayType == 1) { - Dictionary<string, string> d = new Dictionary<string, string>(); - d.Add("on_off", ""); - Control.Ins.SendWriteCommand(tV, d); + btnSwitch.IsSelected = !btnSwitch.IsSelected; + new System.Threading.Thread(() => + { + if (SPK.NotStatusSpkList.Contains(function.spk)) + { + System.Threading.Thread.Sleep(2000); + Application.RunOnMainThread(() => + { + btnSwitch.IsSelected = !btnSwitch.IsSelected; + }); + } + + Dictionary<string, string> d = new Dictionary<string, string>(); + d.Add("on_off", ""); + Control.Ins.SendWriteCommand(function, d); + }) + { IsBackground = true }.Start(); } else { - new TV().ControlTV(InfraredCode_TV.Power, tV); + new TV().ControlTV(InfraredCode_TV.Power, function); } }; } @@ -408,20 +468,20 @@ btnClose.MouseUpEventHandler = (sender, e) => { btnClose.IsSelected = true; - curtain.trait_on_off.curValue = "off"; + curtain.trait_on_off.state = "off"; curtain.SetAttrState(FunctionAttributeKey.Percent, 0); Dictionary<string, string> d = new Dictionary<string, string>(); - d.Add(FunctionAttributeKey.OnOff, curtain.trait_on_off.curValue.ToString()); + d.Add(FunctionAttributeKey.OnOff, curtain.trait_on_off.state.ToString()); Control.Ins.SendWriteCommand(curtain, d); }; btnOpen.MouseUpEventHandler = (sender, e) => { btnOpen.IsSelected = true; - curtain.trait_on_off.curValue = "on"; + curtain.trait_on_off.state = "on"; curtain.SetAttrState(FunctionAttributeKey.Percent, 100); Dictionary<string, string> d = new Dictionary<string, string>(); - d.Add(FunctionAttributeKey.OnOff, curtain.trait_on_off.curValue.ToString()); + d.Add(FunctionAttributeKey.OnOff, curtain.trait_on_off.state.ToString()); Control.Ins.SendWriteCommand(curtain, d); }; } -- Gitblit v1.8.0