HDL Home App 第二版本 旧平台金堂用 正在使用
hxb
2022-08-30 25429f085093d89d543a0b90e30d0d62d1b7dac9
ZigbeeApp/Shared/Phone/UserCenter/Residence/EditorRoomInforForm.cs
@@ -67,15 +67,11 @@
            //加一个白色背景
            var frameBack1 = new FrameLayout();
            frameBack1.Height = Application.GetRealHeight(450);
            frameBack1.Height = Application.GetRealHeight(750);
            frameBack1.Y = Application.GetRealHeight(196);
            frameBack1.BackgroundColor = UserCenterColor.Current.White;
            frameBack1.SetCornerWithSameRadius(Application.GetRealHeight(58), HDLUtils.RectCornerTopLeft | HDLUtils.RectCornerTopRight);
            listBackControl.frameTable.AddChidren(frameBack1);
            //初始化信息桌布
            var tableContr = new InformationEditorControl();
            this.listview = tableContr.InitControl(listBackControl.frameTable, Language.StringByID(R.MyInternationalizationString.uInfoEditor), 1175);
            //房间图片底部阴影
            var btnShadow = new PicViewControl(853, 593);
@@ -109,7 +105,7 @@
            btnZhezhao.Radius = (uint)Application.GetRealHeight(17);
            listBackControl.frameTable.AddChidren(btnZhezhao);
            //分享的房间不能编辑
            if (this.editorRoom.IsSharedRoom == false)
            if (this.editorRoom.IsSharedRoom == false && Common.Config.Instance.Home.IsShowTemplate == false)
            {
                btnZhezhao.MouseUpEventHandler += (sender, e) =>
                {
@@ -118,8 +114,9 @@
                };
            }
            //变更一下那个白色背景的Y轴,它到图片的中间位置
            frameBack1.Y = btnPic.Y + btnPic.Height / 2;
            //初始化信息桌布
            var tableContr = new InformationEditorControl();
            this.listview = tableContr.InitControl(listBackControl.frameTable, Language.StringByID(R.MyInternationalizationString.uInfoEditor), bodyFrameLayout.Height - btnShadow.Bottom, false);
            //添加全部菜单
            this.AddAllMenuRow(tableContr, btnPic);
@@ -140,6 +137,7 @@
            {
                txtRoomName = new FrameCaptionInputControl(Language.StringByID(R.MyInternationalizationString.uRoomName), this.cloneRoom.Name, this.listview.rowSpace / 2);
                txtRoomName.txtInput.PlaceholderText = Language.StringByID(R.MyInternationalizationString.uPleaseInputRoomName);
                txtRoomName.txtInput.MaxByte = 48;//限制只能输入48个字节
                listview.AddChidren(txtRoomName);
                txtRoomName.InitControl();
                //底线
@@ -166,7 +164,7 @@
                //底线
                btnBelone.AddBottomLine();
                //分享的房间不能修改
                if (this.editorRoom.IsSharedRoom == false)
                if (this.editorRoom.IsSharedRoom == false && Common.Config.Instance.Home.IsShowTemplate == false)
                {
                    //右箭头
                    btnBelone.AddRightArrow();
@@ -188,7 +186,8 @@
            //底线
            rowTemperature.AddBottomLine();
            //分享的房间不能修改 或者当前住宅不是虚拟的
            if (this.editorRoom.IsSharedRoom == false && Common.Config.Instance.Home.IsVirtually == false)
            if (this.editorRoom.IsSharedRoom == false && Common.Config.Instance.Home.IsVirtually == false
                && Common.Config.Instance.Home.IsShowTemplate == false)
            {
                rowTemperature.ButtonClickEvent += (sender, e) =>
                {
@@ -196,7 +195,8 @@
                    this.ShowTemperatrueDevice(btnTemper);
                };
            }
            if (string.IsNullOrEmpty(cloneRoom.TemperatrueDevice) == false)
            if (string.IsNullOrEmpty(cloneRoom.TemperatrueDevice) == false
                && Common.Config.Instance.Home.IsShowTemplate == false)
            {
                //获取温度
                this.GetTemperatrueValue(btnTemper, cloneRoom.TemperatrueDevice);
@@ -212,7 +212,8 @@
            //底线
            rowHumidity.AddBottomLine();
            //分享的房间不能修改 或者当前住宅不是虚拟的
            if (this.editorRoom.IsSharedRoom == false && Common.Config.Instance.Home.IsVirtually == false)
            if (this.editorRoom.IsSharedRoom == false && Common.Config.Instance.Home.IsVirtually == false
                && Common.Config.Instance.Home.IsShowTemplate == false)
            {
                rowHumidity.ButtonClickEvent += (sender, e) =>
                {
@@ -220,7 +221,8 @@
                    this.ShowHumidityDevice(btnHumi);
                };
            }
            if (string.IsNullOrEmpty(cloneRoom.HumidityDevice) == false)
            if (string.IsNullOrEmpty(cloneRoom.HumidityDevice) == false
                && Common.Config.Instance.Home.IsShowTemplate == false)
            {
                //获取湿度
                this.GetHumidityValue(btnHumi, cloneRoom.HumidityDevice);
@@ -231,7 +233,7 @@
            tableContr = null;
            //分享的房间不能保存
            if (this.editorRoom.IsSharedRoom == true)
            if (this.editorRoom.IsSharedRoom == true|| Common.Config.Instance.Home.IsShowTemplate == true)
            {
                return;
            }
@@ -450,8 +452,7 @@
                       && data.AttributeId == (int)ZigBee.Device.AttriButeId.MeasuredValue)
                    {
                        //处理网关返回的温度值
                        decimal temperatrue = 0;
                        this.AdjustTemperatrueValue(data.AttributeData, ref temperatrue);
                        decimal temperatrue = Common.LocalDevice.Current.AdjustTemperatrueValue(data.AttributeData);
                        device.GetType().InvokeMember("currentTemperature", System.Reflection.BindingFlags.SetField, null, device, new object[] { temperatrue });
                        device.ReSave();
@@ -469,37 +470,6 @@
                    }
                }
            });
        }
        /// <summary>
        /// 处理网关返回的温度值
        /// </summary>
        /// <param name="value">网关返回的属性值</param>
        /// <param name="temperatrue">转换成的温度值</param>
        private void AdjustTemperatrueValue(int value, ref decimal temperatrue)
        {
            if (value == 0)
            {
                //0℃
                temperatrue = 0;
            }
            else if (value > 32767)
            {
                //负数(特殊处理)
                string strValue = (value - 65536).ToString();
                //小数点需要一位
                strValue = strValue.Substring(0, strValue.Length - 1);
                //记录温度
                temperatrue = Convert.ToDecimal(strValue.Insert(strValue.Length - 1, "."));
            }
            else
            {
                //小数点需要一位
                string strValue = value.ToString();
                strValue = strValue.Substring(0, strValue.Length - 1);
                //记录温度
                temperatrue = Convert.ToDecimal(strValue.Insert(strValue.Length - 1, "."));
            }
        }
        #endregion
@@ -617,8 +587,7 @@
                       && data.AttributeId == (int)ZigBee.Device.AttriButeId.MeasuredValue)
                    {
                        //处理网关返回的湿度值
                        decimal humidity = 0;
                        this.AdjustHumidityValue(data.AttributeData, ref humidity);
                        decimal humidity = Common.LocalDevice.Current.AdjustHumidityValue(data.AttributeData);
                        device.GetType().InvokeMember("currentHumidity", System.Reflection.BindingFlags.SetField, null, device, new object[] { humidity });
                        device.ReSave();
@@ -636,30 +605,6 @@
                    }
                }
            });
        }
        /// <summary>
        /// 处理网关返回的湿度值
        /// </summary>
        /// <param name="value">网关返回的属性值</param>
        /// <param name="temperatrue">转换成的湿度值</param>
        /// <param name="valueText">转换成的湿度值的翻译文本</param>
        private void AdjustHumidityValue(int value, ref decimal humidity)
        {
            if (value == 0)
            {
                //0%
                humidity = 0;
            }
            //不会出现负数
            else
            {
                //小数点需要一位
                string strValue = value.ToString();
                strValue = strValue.Substring(0, strValue.Length - 1);
                //记录温度
                humidity = Convert.ToDecimal(strValue.Insert(strValue.Length - 1, "."));
            }
        }
        #endregion