黄学彪
2020-08-21 9cc8fd11b13813adbdd3c6c31554e5c0bebf4026
ZigbeeApp/Shared/Phone/UserCenter/Device/AirConditioner/IndoorUnitListForm.cs
@@ -133,9 +133,19 @@
            btnValue.Y = Application.GetRealHeight(58);
            btnValue.X = frameTable.Width - Application.GetRealWidth(300 + 58);
            btnValue.TextAlignment = TextAlignment.CenterRight;
            btnValue.TextID = R.MyInternationalizationString.uGetting;
            frameTable.AddChidren(btnValue, ChidrenBindMode.BindEvent);
            rowInfo.btnValue = btnValue;
            //室内温度
            if (device.currentLocalTemperature == 0)
            {
                //0℃
                btnValue.Text = "0.0℃";
            }
            else
            {
                btnValue.Text = device.currentLocalTemperature + ".0℃";
            }
            //警告图标
            var btnWarningIcon = new IconViewControl(69);
            btnWarningIcon.X = btnIconBack.X;
@@ -164,28 +174,46 @@
            {
                if (btnSwitch.IsSelected == false)
                {
                    //打开空调
                    var result = await HdlDeviceAirConditionerLogic.Current.OpenAirConditioner(device);
                    if (result == false)
                    //如果不是虚拟住宅的话
                    if (Common.Config.Instance.Home.IsVirtually == false)
                    {
                        return;
                        //打开空调
                        var result = await HdlDeviceAirConditionerLogic.Current.OpenAirConditioner(device);
                        if (result == false)
                        {
                            return;
                        }
                    }
                    btnIcon.IsSelected = true;
                    btnIconBack.BackgroundColor = 0xfffef1ed;
                }
                else
                {
                    //关闭空调
                    var result = await HdlDeviceAirConditionerLogic.Current.CloseAirConditioner(device);
                    if (result == false)
                    //如果不是虚拟住宅的话
                    if (Common.Config.Instance.Home.IsVirtually == false)
                    {
                        return;
                        //关闭空调
                        var result = await HdlDeviceAirConditionerLogic.Current.CloseAirConditioner(device);
                        if (result == false)
                        {
                            return;
                        }
                    }
                    btnIcon.IsSelected = false;
                    btnIconBack.BackgroundColor = 0xfff5f6fa;
                }
                btnSwitch.IsSelected = !btnSwitch.IsSelected;
                //如果是虚拟住宅的话
                if (Common.Config.Instance.Home.IsVirtually == true)
                {
                    device.currentSystemMode = btnSwitch.IsSelected == true ? 3 : 0;
                }
            };
            //如果是展示模板的话
            if (Common.Config.Instance.Home.IsShowTemplate == true)
            {
                btnSwitch.CanClick = false;
            }
            frameTable.ButtonClickEvent += (sender, e) =>
            {
@@ -207,6 +235,11 @@
        /// </summary>
        private void SetReadAttributeComand()
        {
            //如果是虚拟住宅或者展示模板的话
            if (Common.Config.Instance.Home.IsShowTemplate == true || Common.Config.Instance.Home.IsVirtually == true)
            {
                return;
            }
            HdlThreadLogic.Current.RunThread(() =>
            {
                for (int i = 0; i < listDevice.Count; i++)
@@ -238,6 +271,11 @@
                {
                    return;
                }
                var localDevice = Common.LocalDevice.Current.GetDevice(mainkeys);
                if (localDevice == null)
                {
                    return;
                }
                var rowInfo = dicControl[mainkeys];
                for (int i = 0; i < device.DeviceStatusReport.AttriBute.Count; i++)
@@ -248,25 +286,14 @@
                        HdlThreadLogic.Current.RunMain(() =>
                        {
                            //室内温度
                            if (data.AttriButeData == 0)
                            if (((AC)localDevice).currentLocalTemperature == 0)
                            {
                                //0℃
                                rowInfo.btnValue.Text = "0.0℃";
                            }
                            else if (data.AttriButeData > 32767)
                            {
                                //负数(特殊处理)
                                string strValue = (data.AttriButeData - 65536).ToString();
                                //小数点需要一位
                                strValue = strValue.Substring(0, strValue.Length - 1);
                                rowInfo.btnValue.Text = strValue.Insert(strValue.Length - 1, ".") + "℃";
                            }
                            else
                            {
                                //小数点需要一位
                                string strValue = data.AttriButeData.ToString();
                                strValue = strValue.Substring(0, strValue.Length - 1);
                                rowInfo.btnValue.Text = strValue.Insert(strValue.Length - 1, ".") + "℃";
                                rowInfo.btnValue.Text = ((AC)localDevice).currentLocalTemperature + ".0℃";
                            }
                        });
                    }