wxr
2021-07-01 43b0d5870d528f23ecd6aeceb6cfd4325188b46f
HDL_ON/UI/UI2/1-HomePage/HomePageBLL.cs
@@ -23,10 +23,80 @@
        }
        /// <summary>
        /// 更新室内传感器数据-湿度
        /// </summary>
        public static void LoadEvent_RefreshEnvirIndoorHumi()
        {
            Application.RunOnMainThread(() =>
            {
                if (bodyView != null)
                {
                    var humiSensorList = FunctionList.List.GetEnvirSensorsList().FindAll((obj) => obj.spk == SPK.SensorHumidity);
                    double humiTotalValues = 0;
                    foreach (var temp in humiSensorList)
                    {
                        double humiValue = 0;
                        double.TryParse(temp.GetAttrState(FunctionAttributeKey.Value), out humiValue);
                        humiTotalValues += humiValue;
                    }
                    if (humiTotalValues > 0)
                    {
                        bodyView.btnIndoorHumiValues.Text = "/" + humiTotalValues + "%";
                    }
                    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);
                    double tempTotalValues = 0;
                    foreach (var temp in tempSensorList)
                    {
                        double tempValue = 0;
                        double.TryParse(temp.GetAttrState(FunctionAttributeKey.Value), out tempValue);
                        tempTotalValues += tempValue;
                    }
                    if (tempTotalValues > 0)
                    {
                        bodyView.btnIndoorTempValues.Text = "/" + tempTotalValues + "°";
                    }
                    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 +233,7 @@
        /// </summary>
        public static void UpdataFunctionStates(Function function)
        {
            Application.RunOnMainThread((Action)(() =>
            Application.RunOnMainThread(() =>
            {
                try
                {
@@ -213,7 +283,7 @@
                {
                    MainPage.Log($"HomePage updata funciton states error {ex.Message}");
                }
            }));
            });
        }
        /// <summary>
@@ -293,18 +363,17 @@
                    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
                    {
@@ -321,26 +390,35 @@
        /// </summary>
        /// <param name="tV"></param>
        /// <param name="button"></param>
        void LoadEvent_ControlTV(TV tV, Button button)
        void LoadEvent_ControlTV(Function tV, Button button)
        {
            button.MouseUpEventHandler = (sender, e) =>
            {
                tV.ControlTV(InfraredCode_TV.Power);
                if (DB_ResidenceData.Instance.GatewayType == 1)
                {
                    Dictionary<string, string> d = new Dictionary<string, string>();
                    d.Add("on_off", "");
                    Control.Ins.SendWriteCommand(tV, d);
                }
                else
                {
                    new TV().ControlTV(InfraredCode_TV.Power, tV);
                }
            };
        }
        /// <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 +426,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);
            };
        }