From c8c33200e43f05136eca9fc8ff4942f8def31cc6 Mon Sep 17 00:00:00 2001 From: JLChen <551775569@qq.com> Date: 星期三, 18 八月 2021 10:45:40 +0800 Subject: [PATCH] 2021-08-18 1.完善Android对接LinphoneSDK 2.完善SIP相关接口对接 --- HDL_ON/UI/UI2/1-HomePage/HomePageBLL.cs | 177 +++++++++++++++++++++++++++++++++++++++++++++++++++++------ 1 files changed, 159 insertions(+), 18 deletions(-) diff --git a/HDL_ON/UI/UI2/1-HomePage/HomePageBLL.cs b/HDL_ON/UI/UI2/1-HomePage/HomePageBLL.cs index c090e78..51aeb25 100644 --- a/HDL_ON/UI/UI2/1-HomePage/HomePageBLL.cs +++ b/HDL_ON/UI/UI2/1-HomePage/HomePageBLL.cs @@ -23,10 +23,122 @@ } /// <summary> + /// 鏇存柊瀹ゅ唴浼犳劅鍣ㄦ暟鎹�-婀垮害 + /// </summary> + public static void LoadEvent_RefreshEnvirIndoorHumi() + { + Application.RunOnMainThread(() => + { + 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, curValue = tempAttr.curValue } }, + }; + humiSensorList.Add(newTemp); + } + } + double humiTotalValues = 0; + int humiTotalCount = 0; + foreach (var temp in humiSensorList) + { + double humiValue = 0; + double.TryParse(temp.GetAttrState(FunctionAttributeKey.Value), out humiValue); + if(humiValue > 0) + { + humiTotalValues += humiValue; + humiTotalCount++; + } + } + if (humiTotalValues > 0) + { + bodyView.btnIndoorHumiValues.Text = "/" + (humiTotalValues /humiTotalCount).ToString("0")+ "%"; + } + bodyView.btnIndoorHumiValues.Width = bodyView.btnIndoorHumiValues.GetTextWidth(); + } + }); + } + + /// <summary> + /// 鏇存柊瀹ゅ唴浼犳劅鍣ㄦ暟鎹� + /// </summary> + public static void LoadEvent_RefreshEnvirIndoorTemp() + { + Application.RunOnMainThread(() => + { + 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, curValue = tempAttr.curValue } }, + }; + tempSensorList.Add(newTemp); + } + } + double tempTotalValues = 0; + int tempTotalCount = 0; + foreach (var temp in tempSensorList) + { + double tempValue = 0; + double.TryParse(temp.GetAttrState(FunctionAttributeKey.Value), out tempValue); + if (tempValue > 0) + { + tempTotalValues += tempValue; + tempTotalCount++; + } + } + if (tempTotalValues > 0) + { + bodyView.btnIndoorTempValues.Text = "/" + (tempTotalValues /tempTotalCount).ToString("0.0")+ "掳"; + } + bodyView.btnIndoorTempValues.Width = bodyView.btnIndoorTempValues.GetTextWidth(); + } + }); + } + + /// <summary> + /// 鏇存柊鍔熻兘鍒楄〃涓婚〉 + /// </summary> + public static void RefreshFunctionView() + { + if (bodyView != null && MainPage.CurPageIndex==0) + { + bodyView.LoadDeviceFunctionControlZone(); + } + } + + /// <summary> /// 鏇存柊杩炴帴鐘舵�佸浘鏍� /// </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; @@ -163,7 +275,7 @@ /// </summary> public static void UpdataFunctionStates(Function function) { - Application.RunOnMainThread((Action)(() => + Application.RunOnMainThread(() => { try { @@ -213,7 +325,7 @@ { MainPage.Log($"HomePage updata funciton states error {ex.Message}"); } - })); + }); } /// <summary> @@ -289,22 +401,28 @@ btnSwitch.IsSelected = !btnSwitch.IsSelected; new System.Threading.Thread(() => { + if(SPK.NotStatusSpkList.Contains(function.spk)) + { + System.Threading.Thread.Sleep(1000); + Application.RunOnMainThread(() => { + btnSwitch.IsSelected = !btnSwitch.IsSelected; + }); + } function.trait_on_off.curValue = btnSwitch.IsSelected ? "on" : "off"; Dictionary<string, string> d = new Dictionary<string, string>(); if (function.spk == SPK.LightDimming || function.spk == SPK.LightRGB) { - var light = function as Light; - d.Add(FunctionAttributeKey.OnOff, light.trait_on_off.curValue.ToString()); + d.Add(FunctionAttributeKey.OnOff, function.trait_on_off.curValue.ToString()); if (btnSwitch.IsSelected) { - d.Add(FunctionAttributeKey.Brightness, light.lastBrightness.ToString()); + d.Add(FunctionAttributeKey.Brightness, function.lastBrightness.ToString()); } else { - light.lastBrightness = light.brightness; + function.lastBrightness = Convert.ToInt32(function.GetAttrState(FunctionAttributeKey.Brightness)); } - d.Add(FunctionAttributeKey.FadeTime, light.fadeTime.ToString()); - Control.Ins.SendWriteCommand(light, d); + d.Add(FunctionAttributeKey.FadeTime, function.GetAttrState(FunctionAttributeKey.FadeTime)); + Control.Ins.SendWriteCommand(function, d); } else { @@ -319,28 +437,51 @@ /// <summary> /// 鍔犺浇鐢佃鎺у埗浜嬩欢 /// </summary> - /// <param name="tV"></param> - /// <param name="button"></param> - void LoadEvent_ControlTV(TV 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) => { - tV.ControlTV(InfraredCode_TV.Power); + if (DB_ResidenceData.Instance.GatewayType == 1) + { + 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, function); + } }; } /// <summary> /// 鍔犺浇绐楀笜鎺у埗浜嬩欢 /// </summary> - void LoadEvent_ControlCurtain(Curtain curtain, Button btnClose, Button btnOpen) + void LoadEvent_ControlCurtain(Function curtain, Button btnClose, Button btnOpen) { btnClose.MouseUpEventHandler = (sender, e) => { btnClose.IsSelected = true; curtain.trait_on_off.curValue = "off"; - curtain.percent = 0; + curtain.SetAttrState(FunctionAttributeKey.Percent, 0); Dictionary<string, string> d = new Dictionary<string, string>(); - d.Add("on_off", curtain.trait_on_off.curValue.ToString()); + d.Add(FunctionAttributeKey.OnOff, curtain.trait_on_off.curValue.ToString()); Control.Ins.SendWriteCommand(curtain, d); }; @@ -348,9 +489,9 @@ { btnOpen.IsSelected = true; curtain.trait_on_off.curValue = "on"; - curtain.percent = 100; + curtain.SetAttrState(FunctionAttributeKey.Percent, 100); Dictionary<string, string> d = new Dictionary<string, string>(); - d.Add("on_off", curtain.trait_on_off.curValue.ToString()); + d.Add(FunctionAttributeKey.OnOff, curtain.trait_on_off.curValue.ToString()); Control.Ins.SendWriteCommand(curtain, d); }; } -- Gitblit v1.8.0