From cc0d80c7d86c6d0167269b3408c4b30c24ce84e9 Mon Sep 17 00:00:00 2001 From: 黄学彪 <hxb@hdlchina.com.cn> Date: 星期一, 23 三月 2020 16:55:37 +0800 Subject: [PATCH] ??????? --- ZigbeeApp/Shared/Phone/UserCenter/Residence/AddNewRoomForm.cs | 199 +++++++++++++++++++++++++++++++------------------ 1 files changed, 127 insertions(+), 72 deletions(-) diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Residence/AddNewRoomForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Residence/AddNewRoomForm.cs index 40b3042..9b85a1e 100755 --- a/ZigbeeApp/Shared/Phone/UserCenter/Residence/AddNewRoomForm.cs +++ b/ZigbeeApp/Shared/Phone/UserCenter/Residence/AddNewRoomForm.cs @@ -54,15 +54,42 @@ //娓呯┖bodyFrame this.ClearBodyFrame(); + //鍔犱竴涓櫧鑹茶儗鏅� + var frameBack1 = new FrameLayout(); + frameBack1.Height = Application.GetRealHeight(450); + frameBack1.Y = Application.GetRealHeight(196); + frameBack1.BackgroundColor = UserCenterColor.Current.White; + frameBack1.SetCornerWithSameRadius(Application.GetRealHeight(58), HDLUtils.RectCornerTopLeft | HDLUtils.RectCornerTopRight); + bodyFrameLayout.AddChidren(frameBack1); + + //鍒濆鍖栦俊鎭甯� + var tableContr = new InformationEditorControl(); + this.listview = tableContr.InitControl(bodyFrameLayout, Language.StringByID(R.MyInternationalizationString.uInfoEditor), 613, 1175); + + //鎴块棿鍥剧墖搴曢儴闃村奖 + var btnShadow = new PicViewControl(994, 588); + btnShadow.Y = Application.GetRealHeight(58); + btnShadow.Gravity = Gravity.CenterHorizontal; + btnShadow.UnSelectedImagePath = "Room/RoomShadow.png"; + bodyFrameLayout.AddChidren(btnShadow); + //鎴块棿鍥剧墖 var btnPic = new ImageView(); btnPic.Y = Application.GetRealHeight(60); - btnPic.Width = Application.GetMinRealAverage(887); - btnPic.Height = Application.GetMinRealAverage(444); + btnPic.Width = Application.GetMinRealAverage(965); + btnPic.Height = Application.GetMinRealAverage(544); + btnPic.Radius = (uint)Application.GetRealHeight(17); btnPic.Gravity = Gravity.CenterHorizontal; - btnPic.Radius = 17; - btnPic.ImagePath = "Room/r0.png"; + btnPic.ImagePath = "RoomIcon/0.JPG"; bodyFrameLayout.AddChidren(btnPic); - btnPic.MouseUpEventHandler += (sender, e) => + //鍥剧墖閬僵 + var btnZhezhao = new FrameLayout(); + btnZhezhao.Width = btnPic.Width; + btnZhezhao.Height = btnPic.Height; + btnZhezhao.Y = btnPic.Y; + btnZhezhao.Gravity = Gravity.CenterHorizontal; + btnZhezhao.Radius = btnPic.Radius; + bodyFrameLayout.AddChidren(btnZhezhao); + btnZhezhao.MouseUpEventHandler += (sender, e) => { //鎴块棿鍥剧墖閫夋嫨 this.RoomPictrueSelect(btnPic); @@ -71,10 +98,8 @@ this.newRoom = new Common.Room(); newRoom.FloorId = this.floorKeys; newRoom.BackgroundImage = btnPic.ImagePath; - - //鍒濆鍖栨甯� - var tableContr = new InformationEditorControl(); - this.listview = tableContr.InitControl(bodyFrameLayout, Language.StringByID(R.MyInternationalizationString.uInfoEditor), 562, 1175); + newRoom.Humidity = -1000; + newRoom.Temperatrue = -1000; //娣诲姞鍏ㄩ儴鑿滃崟 this.AddAllMenuRow(tableContr, btnPic); @@ -163,25 +188,28 @@ if (newRoom.BackgroundImageType == 1 || newRoom.BackgroundImageType == 2) { //鐢熸垚鍥剧墖 - string picName = $"Room_{DateTime.Now.ToString("yyyyMMddHHmmss")}"; + string picName = $"RoomIcon_{DateTime.Now.ToString("yyyyMMddHHmmss")}.png"; string picFullName = System.IO.Path.Combine(Common.Config.Instance.FullPath, picName); Shared.IO.FileUtils.WriteFileByBytes(picFullName, btnPic.ImageBytes); - newRoom.BackgroundImage = picFullName; + newRoom.BackgroundImage = picName; //澶囦唤 Phone.UserCenter.HdlAutoBackupLogic.AddOrEditorFile(picName); } - var result = newRoom.AddRoom(newRoom); - if (result == false) - { - //鎻愮ず鐢ㄦ埛娣诲姞澶辫触 - this.ShowMassage(ShowMsgType.Error, Language.StringByID(R.MyInternationalizationString.FAIL)); - } - else - { - this.FinishEditorEvent?.Invoke(); - this.CloseForm(); + newRoom.FloorId = this.floorKeys; + if (newRoom.Humidity == -1000) + { + newRoom.Humidity = 0; } + if (newRoom.Temperatrue == -1000) + { + newRoom.Temperatrue = 0; + } + + HdlRoomLogic.Current.AddRoom(newRoom); + this.FinishEditorEvent?.Invoke(); + + this.CloseForm(); }; } @@ -195,7 +223,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>(); @@ -269,44 +297,58 @@ { return; } - //鑾峰彇涓�... - btnTemper.Text = Language.StringByID(R.MyInternationalizationString.uGetting); + if (newRoom.Temperatrue == -1000) + { + //娌℃湁鑾峰彇寰楀埌杩囨俯搴� + btnTemper.Text = Language.StringByID(R.MyInternationalizationString.Getting); + } + else + { + btnTemper.Text = this.newRoom.Temperatrue == 0 ? "0.0鈩�" : this.newRoom.Temperatrue.ToString() + "鈩�"; + btnTemper.Text += " " + Language.StringByID(R.MyInternationalizationString.Getting); + } - HdlDeviceAttributeLogic.Current.RemoveEvent("TemperatrueDevice"); - HdlDeviceAttributeLogic.Current.AddAttributeEvent("TemperatrueDevice", "DeviceStatusReport", (Action<ZigBee.Device.CommonDevice>)((report) => + HdlGatewayReceiveLogic.Current.RemoveEvent("TemperatrueDevice"); + HdlGatewayReceiveLogic.Current.AddAttributeEvent("TemperatrueDevice", ReceiveComandDiv.A璁惧灞炴�т笂鎶�, ((report) => { string mainKeys = Common.LocalDevice.Current.GetDeviceMainKeys(report); if (newRoom.TemperatrueDevice != mainKeys || btnTemper == null) { return; } - //绉婚櫎鎺変簨浠� - HdlDeviceAttributeLogic.Current.RemoveEvent("TemperatrueDevice"); foreach (var data in report.DeviceStatusReport.AttriBute) { if (data.AttributeId == (int)ZigBee.Device.AttriButeId.MeasuredValue) { - if (data.AttriButeData == 0) + HdlThreadLogic.Current.RunMain(() => { - //0鈩� - btnTemper.Text = "0.0鈩�"; - } - else if (data.AttriButeData > 32767) - { - //璐熸暟(鐗规畩澶勭悊) - string strValue = (data.AttriButeData - 65536).ToString(); - //灏忔暟鐐归渶瑕佷竴浣� - strValue = strValue.Substring(0, strValue.Length - 1); - btnTemper.Text = strValue.Insert(strValue.Length - 1, ".") + "鈩�"; - } - else - { - //灏忔暟鐐归渶瑕佷竴浣� - string strValue = data.AttriButeData.ToString(); - strValue = strValue.Substring(0, strValue.Length - 1); - btnTemper.Text = strValue.Insert(strValue.Length - 1, ".") + "鈩�"; - } + if (data.AttriButeData == 0) + { + //0鈩� + btnTemper.Text = "0.0鈩�"; + this.newRoom.Temperatrue = 0; + } + else if (data.AttriButeData > 32767) + { + //璐熸暟(鐗规畩澶勭悊) + string strValue = (data.AttriButeData - 65536).ToString(); + //灏忔暟鐐归渶瑕佷竴浣� + strValue = strValue.Substring(0, strValue.Length - 1); + //璁板綍娓╁害 + this.newRoom.Temperatrue = Convert.ToDecimal(strValue.Insert(strValue.Length - 1, ".")); + btnTemper.Text = this.newRoom.Temperatrue.ToString() + "鈩�"; + } + else + { + //灏忔暟鐐归渶瑕佷竴浣� + string strValue = data.AttriButeData.ToString(); + strValue = strValue.Substring(0, strValue.Length - 1); + //璁板綍娓╁害 + this.newRoom.Temperatrue = Convert.ToDecimal(strValue.Insert(strValue.Length - 1, ".")); + btnTemper.Text = this.newRoom.Temperatrue.ToString() + "鈩�"; + } + }); } } })); @@ -362,35 +404,47 @@ { return; } - //鑾峰彇涓�... - btnHumi.Text = Language.StringByID(R.MyInternationalizationString.uGetting); + if (newRoom.Humidity == -1000) + { + //娌℃湁鑾峰彇寰楀埌杩囨箍搴� + btnHumi.Text = Language.StringByID(R.MyInternationalizationString.Getting); + } + else + { + btnHumi.Text = this.newRoom.Humidity == 0 ? "0.0%" : this.newRoom.Humidity.ToString() + "%"; + btnHumi.Text += " " + Language.StringByID(R.MyInternationalizationString.Getting); + } - HdlDeviceAttributeLogic.Current.RemoveEvent("HumidityDevice"); - HdlDeviceAttributeLogic.Current.AddAttributeEvent("HumidityDevice", "DeviceStatusReport", (report) => + HdlGatewayReceiveLogic.Current.RemoveEvent("HumidityDevice"); + HdlGatewayReceiveLogic.Current.AddAttributeEvent("HumidityDevice", ReceiveComandDiv.A璁惧灞炴�т笂鎶�, (report) => { string mainKeys = Common.LocalDevice.Current.GetDeviceMainKeys(report); if (newRoom.HumidityDevice != mainKeys || btnHumi == null) { return; } - //绉婚櫎鎺変簨浠� - HdlDeviceAttributeLogic.Current.RemoveEvent("HumidityDevice"); foreach (var data in report.DeviceStatusReport.AttriBute) { if (data.AttributeId == (int)ZigBee.Device.AttriButeId.MeasuredValue) { - if (data.AttriButeData == 0) + HdlThreadLogic.Current.RunMain(() => { - //0 - btnHumi.Text = "0.0%"; - } - else - { - //灏忔暟鐐归渶瑕佷竴浣�(婀垮害娌℃湁璐熸暟) - string strValue = data.AttriButeData.ToString(); - strValue = strValue.Substring(0, strValue.Length - 1); - btnHumi.Text = strValue.Insert(strValue.Length - 1, ".") + "%"; - } + if (data.AttriButeData == 0) + { + //0 + btnHumi.Text = "0.0%"; + this.newRoom.Humidity = 0; + } + else + { + //灏忔暟鐐归渶瑕佷竴浣�(婀垮害娌℃湁璐熸暟) + string strValue = data.AttriButeData.ToString(); + strValue = strValue.Substring(0, strValue.Length - 1); + //璁板綍婀垮害 + this.newRoom.Humidity = Convert.ToDecimal(strValue.Insert(strValue.Length - 1, ".")); + btnHumi.Text = this.newRoom.Humidity.ToString() + "%"; + } + }); } } }); @@ -425,7 +479,8 @@ } this.newRoom.BackgroundImageType = 0; this.newRoom.BackgroundImage = imgPath; - imageContr.ImagePath = imgPath; + imgPath = IO.FileUtils.GetImageFilePath(imgPath); + imageContr.ImageBytes = IO.FileUtils.ReadFile(imgPath); }; }); //鎷嶇収 @@ -468,14 +523,14 @@ /// <summary> /// 鐣岄潰鍏抽棴 /// </summary> - public override void CloseForm() + public override void CloseFormBefore() { this.FinishEditorEvent = null; - HdlDeviceAttributeLogic.Current.RemoveEvent("TemperatrueDevice"); - HdlDeviceAttributeLogic.Current.RemoveEvent("HumidityDevice"); + HdlGatewayReceiveLogic.Current.RemoveEvent("TemperatrueDevice"); + HdlGatewayReceiveLogic.Current.RemoveEvent("HumidityDevice"); - base.CloseForm(); + base.CloseFormBefore(); } #endregion @@ -496,7 +551,8 @@ } if (string.IsNullOrEmpty(this.floorKeys) == true) { - if (Shared.Common.Room.Lists.Find((obj) => obj.Name == this.newRoom.Name && obj.Id != this.newRoom.Id) != null) + var listRoom = HdlRoomLogic.Current.GetAllListRooms(); + if (listRoom.Find((obj) => obj.Name == this.newRoom.Name && obj.Id != this.newRoom.Id) != null) { this.ShowMassage(ShowMsgType.Error, Language.StringByID(R.MyInternationalizationString.uRoomNameIsExist)); return false; @@ -504,14 +560,13 @@ } else { - var listRoom = Common.Room.CurrentRoom.GetFloorSortRoom(this.floorKeys); + var listRoom = HdlRoomLogic.Current.GetFloorSortRoom(this.floorKeys); if (listRoom.Find((obj) => obj.Name == this.newRoom.Name && obj.Id != this.newRoom.Id) != null) { this.ShowMassage(ShowMsgType.Error, Language.StringByID(R.MyInternationalizationString.uRoomNameIsExist)); return false; } } - newRoom.FloorId = this.floorKeys; return true; } -- Gitblit v1.8.0