HDL Home App 第二版本 旧平台金堂用 正在使用
黄学彪
2020-03-06 a5b3c4bae726ef6770d4bfcbf2f4b50a37ed4a15
ZigbeeApp/Shared/Phone/UserCenter/Residence/EditorRoomInforForm.cs
@@ -12,7 +12,7 @@
        #region ■ 变量声明___________________________
        /// <summary>
        /// 结束编辑名称的事件
        /// 结束编辑的事件
        /// </summary>
        public Action<string> FinishEditorEvent = null;
        /// <summary>
@@ -42,8 +42,18 @@
        /// <param name="i_editorRoom">编辑的房间对象</param>
        public void ShowForm(Common.Room i_editorRoom = null)
        {
            //弄一点初始值
            this.editorRoom = i_editorRoom;
            this.cloneRoom = i_editorRoom.CloneRoomClass();
            this.cloneRoom = HdlRoomLogic.Current.CloneRoomClass(i_editorRoom);
            if (i_editorRoom.HumidityDevice == string.Empty)
            {
                this.cloneRoom.Humidity = -1000;
            }
            if (i_editorRoom.TemperatrueDevice == string.Empty)
            {
                this.cloneRoom.Temperatrue = -1000;
            }
            //设置头部信息
            base.SetTitleText(Language.StringByID(R.MyInternationalizationString.uEditorRoom));
@@ -213,7 +223,9 @@
                editorRoom.FloorId = cloneRoom.FloorId;
                editorRoom.Name = cloneRoom.Name;
                editorRoom.HumidityDevice = cloneRoom.HumidityDevice;
                editorRoom.Humidity = cloneRoom.Humidity;
                editorRoom.TemperatrueDevice = cloneRoom.TemperatrueDevice;
                editorRoom.Temperatrue = cloneRoom.Temperatrue;
                editorRoom.BackgroundImage = cloneRoom.BackgroundImage;
                editorRoom.BackgroundImageType = cloneRoom.BackgroundImageType;
                editorRoom.Save();
@@ -233,7 +245,7 @@
        /// <param name="control"></param>
        private void ShowSelectFloor(FrameCaptionViewControl control)
        {
            var dicFloor = Common.Room.CurrentRoom.GetFloorSortList();
            var dicFloor = HdlRoomLogic.Current.GetFloorSortList();
            var listKeys = new List<string>();
            var listName = new List<string>();
@@ -307,8 +319,16 @@
            {
                return;
            }
            //获取中...
            btnTemper.Text = Language.StringByID(R.MyInternationalizationString.uGetting);
            if (cloneRoom.Temperatrue == -1000)
            {
                //没有获取得到过温度
                btnTemper.Text = Language.StringByID(R.MyInternationalizationString.Getting);
            }
            else
            {
                btnTemper.Text = this.cloneRoom.Temperatrue == 0 ? "0.0℃" : this.cloneRoom.Temperatrue.ToString() + "℃";
                btnTemper.Text += "  " + Language.StringByID(R.MyInternationalizationString.Getting);
            }
            HdlGatewayReceiveLogic.Current.RemoveEvent("TemperatrueDevice");
            HdlGatewayReceiveLogic.Current.AddAttributeEvent("TemperatrueDevice", ReceiveComandDiv.A设备属性上报, ((report) =>
@@ -318,8 +338,6 @@
                {
                    return;
                }
                //移除掉事件
                HdlGatewayReceiveLogic.Current.RemoveEvent("TemperatrueDevice");
                foreach (var data in report.DeviceStatusReport.AttriBute)
                {
@@ -331,6 +349,7 @@
                            {
                                //0℃
                                btnTemper.Text = "0.0℃";
                                this.cloneRoom.Temperatrue = 0;
                            }
                            else if (data.AttriButeData > 32767)
                            {
@@ -338,14 +357,18 @@
                                string strValue = (data.AttriButeData - 65536).ToString();
                                //小数点需要一位
                                strValue = strValue.Substring(0, strValue.Length - 1);
                                btnTemper.Text = strValue.Insert(strValue.Length - 1, ".") + "℃";
                                //记录温度
                                this.cloneRoom.Temperatrue = Convert.ToDecimal(strValue.Insert(strValue.Length - 1, "."));
                                btnTemper.Text = this.cloneRoom.Temperatrue.ToString() + "℃";
                            }
                            else
                            {
                                //小数点需要一位
                                string strValue = data.AttriButeData.ToString();
                                strValue = strValue.Substring(0, strValue.Length - 1);
                                btnTemper.Text = strValue.Insert(strValue.Length - 1, ".") + "℃";
                                //记录温度
                                this.cloneRoom.Temperatrue = Convert.ToDecimal(strValue.Insert(strValue.Length - 1, "."));
                                btnTemper.Text = this.cloneRoom.Temperatrue.ToString() + "℃";
                            }
                        });
                    }
@@ -403,8 +426,16 @@
            {
                return;
            }
            //获取中...
            btnHumi.Text = Language.StringByID(R.MyInternationalizationString.uGetting);
            if (cloneRoom.Humidity == -1000)
            {
                //没有获取得到过湿度
                btnHumi.Text = Language.StringByID(R.MyInternationalizationString.Getting);
            }
            else
            {
                btnHumi.Text = this.cloneRoom.Humidity == 0 ? "0.0%" : this.cloneRoom.Humidity.ToString() + "%";
                btnHumi.Text += "  " + Language.StringByID(R.MyInternationalizationString.Getting);
            }
            HdlGatewayReceiveLogic.Current.RemoveEvent("HumidityDevice");
            HdlGatewayReceiveLogic.Current.AddAttributeEvent("HumidityDevice", ReceiveComandDiv.A设备属性上报, (report) =>
@@ -414,8 +445,6 @@
                {
                    return;
                }
                //移除掉事件
                HdlGatewayReceiveLogic.Current.RemoveEvent("HumidityDevice");
                foreach (var data in report.DeviceStatusReport.AttriBute)
                {
                    if (data.AttributeId == (int)ZigBee.Device.AttriButeId.MeasuredValue)
@@ -426,13 +455,16 @@
                            {
                                //0
                                btnHumi.Text = "0.0%";
                                this.cloneRoom.Humidity = 0;
                            }
                            else
                            {
                                //小数点需要一位(湿度没有负数)
                                string strValue = data.AttriButeData.ToString();
                                strValue = strValue.Substring(0, strValue.Length - 1);
                                btnHumi.Text = strValue.Insert(strValue.Length - 1, ".") + "%";
                                //记录湿度
                                this.cloneRoom.Humidity = Convert.ToDecimal(strValue.Insert(strValue.Length - 1, "."));
                                btnHumi.Text = this.cloneRoom.Humidity.ToString() + "%";
                            }
                        });
                    }
@@ -544,7 +576,7 @@
            }
            if (string.IsNullOrEmpty(this.cloneRoom.FloorId) == true)
            {
                if (Shared.Common.Room.Lists.Find((obj) => obj.Name == this.cloneRoom.Name && obj.Id != this.cloneRoom.Id) != null)
                if (HdlRoomLogic.Current.GetAllListRooms().Find((obj) => obj.Name == this.cloneRoom.Name && obj.Id != this.cloneRoom.Id) != null)
                {
                    this.ShowMassage(ShowMsgType.Error, Language.StringByID(R.MyInternationalizationString.HadSameRoom));
                    return false;
@@ -552,7 +584,7 @@
            }
            else
            {
                var listRoom = Common.Room.CurrentRoom.GetFloorSortRoom(this.cloneRoom.FloorId);
                var listRoom = HdlRoomLogic.Current.GetFloorSortRoom(this.cloneRoom.FloorId);
                if (listRoom.Find((obj) => obj.Name == this.cloneRoom.Name && obj.Id != this.cloneRoom.Id) != null)
                {
                    this.ShowMassage(ShowMsgType.Error, Language.StringByID(R.MyInternationalizationString.HadSameRoom));