| | |
| | | #region ■ 变量声明___________________________
|
| | |
|
| | | /// <summary>
|
| | | /// 结束编辑名称的事件
|
| | | /// 结束编辑的事件
|
| | | /// </summary>
|
| | | public Action<string> FinishEditorEvent = null;
|
| | | /// <summary>
|
| | |
| | | /// <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));
|
| | |
|
| | |
| | | this.ClearBodyFrame();
|
| | |
|
| | | //房间图片
|
| | | var framePic = new FrameLayout();
|
| | | framePic.Y = Application.GetRealHeight(60);
|
| | | framePic.Width = Application.GetMinRealAverage(887);
|
| | | framePic.Height = Application.GetMinRealAverage(444);
|
| | | framePic.Gravity = Gravity.CenterHorizontal;
|
| | | framePic.Radius = 8;
|
| | | framePic.BackgroundColor = UserCenterColor.Current.BodyFrameLayout;
|
| | | bodyFrameLayout.AddChidren(framePic);
|
| | | var btnPic = new ImageView();
|
| | | btnPic.Radius = 8;
|
| | | framePic.AddChidren(btnPic);
|
| | | btnPic.Y = Application.GetRealHeight(60);
|
| | | btnPic.Width = Application.GetMinRealAverage(887);
|
| | | btnPic.Height = Application.GetMinRealAverage(444);
|
| | | btnPic.Radius = (uint)Application.GetRealHeight(17);
|
| | | btnPic.Gravity = Gravity.CenterHorizontal;
|
| | | if (this.editorRoom.BackgroundImageType == 0)
|
| | | {
|
| | | btnPic.ImagePath = this.editorRoom.BackgroundImage;
|
| | |
| | | {
|
| | | btnPic.ImageBytes = Common.Global.ReadFileByHomeId(this.editorRoom.BackgroundImage);
|
| | | }
|
| | | btnPic.MouseUpEventHandler += (sender, e) =>
|
| | | bodyFrameLayout.AddChidren(btnPic);
|
| | | var btnShadow = new PicViewControl(916, 487);
|
| | | btnShadow.Y = btnPic.Y;
|
| | | btnShadow.Gravity = Gravity.CenterHorizontal;
|
| | | btnShadow.UnSelectedImagePath = "Room/RoomShadow.png";
|
| | | bodyFrameLayout.AddChidren(btnShadow);
|
| | | btnShadow.ButtonClickEvent += (sender, e) =>
|
| | | {
|
| | | //房间图片选择
|
| | | this.RoomPictrueSelect(btnPic);
|
| | | };
|
| | | //添加阴影特效
|
| | | framePic.SetViewShadow(true);
|
| | |
|
| | | //初始化桌布
|
| | | var tableContr = new InformationEditorControl();
|
| | |
| | | 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();
|
| | |
| | | /// <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>();
|
| | |
| | | {
|
| | | 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设备属性上报, (Action<ZigBee.Device.CommonDevice>)((report) =>
|
| | | HdlGatewayReceiveLogic.Current.AddAttributeEvent("TemperatrueDevice", ReceiveComandDiv.A设备属性上报, ((report) =>
|
| | | {
|
| | | string mainKeys = Common.LocalDevice.Current.GetDeviceMainKeys(report);
|
| | | if (cloneRoom.TemperatrueDevice != mainKeys || btnTemper == null)
|
| | | {
|
| | | return;
|
| | | }
|
| | | //移除掉事件
|
| | | HdlGatewayReceiveLogic.Current.RemoveEvent("TemperatrueDevice");
|
| | |
|
| | | foreach (var data in report.DeviceStatusReport.AttriBute)
|
| | | {
|
| | | if (data.AttributeId == (int)ZigBee.Device.AttriButeId.MeasuredValue)
|
| | | {
|
| | | HdlThreadLogic.Current.RunMain(() =>
|
| | | {
|
| | | if (data.AttriButeData == 0)
|
| | | {
|
| | | //0℃
|
| | | btnTemper.Text = "0.0℃";
|
| | | this.cloneRoom.Temperatrue = 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, ".") + "℃";
|
| | | //记录温度
|
| | | 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() + "℃";
|
| | | }
|
| | | });
|
| | | }
|
| | | }
|
| | | }));
|
| | |
| | | {
|
| | | 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) =>
|
| | |
| | | {
|
| | | return;
|
| | | }
|
| | | //移除掉事件
|
| | | HdlGatewayReceiveLogic.Current.RemoveEvent("HumidityDevice");
|
| | | foreach (var data in report.DeviceStatusReport.AttriBute)
|
| | | {
|
| | | if (data.AttributeId == (int)ZigBee.Device.AttriButeId.MeasuredValue)
|
| | | {
|
| | | HdlThreadLogic.Current.RunMain(() =>
|
| | | {
|
| | | if (data.AttriButeData == 0)
|
| | | {
|
| | | //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() + "%";
|
| | | }
|
| | | });
|
| | | }
|
| | | }
|
| | | });
|
| | |
| | | }
|
| | | 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;
|
| | |
| | | }
|
| | | 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));
|