黄学彪
2020-04-28 e22fdb94322e6cec38e5e4a9aec13d431a133fde
ZigbeeApp/Shared/Phone/Device/CommonForm/RoomView.cs
@@ -5,7 +5,7 @@
namespace Shared.Phone.Device.CommonForm
{
    public class RoomView : FrameLayout
    public class RoomView : FrameLayoutBase
    {
        /// <summary>
        /// Room
@@ -21,12 +21,12 @@
        Button temperatureText;
        Button humidityText;
        /// <summary>
        /// 温度设备
        /// <summary>
        /// 温度设备
        /// </summary>
        private CommonDevice temperDevice = null;
        /// <summary>
        /// 湿度设备
        /// <summary>
        /// 湿度设备
        /// </summary>
        private CommonDevice humidDevice = null;
@@ -121,8 +121,8 @@
            var temperatureIcon = new Button
            {
                X = Application.GetRealWidth(12),
                Width = Application.GetMinRealAverage(58),
                Height = Application.GetMinRealAverage(58),
                Width = this.GetPictrueRealSize(58),
                Height = this.GetPictrueRealSize(58),
                Gravity = Gravity.CenterVertical,
                UnSelectedImagePath = "Room/Temperature.png"
            };
@@ -137,8 +137,8 @@
                TextAlignment = TextAlignment.CenterLeft
            };
            if (LocalDevice.Current.GetDevice(room.TemperatrueDevice) != null)
            {
                //这个设备要存在本地才行
            {
                //这个设备要存在本地才行
                temperatureText.Text = room.Temperatrue == 0 ? "0.0℃" : room.Temperatrue.ToString() + "℃";
            }
            roomTemperatureBackground.AddChidren(temperatureText);
@@ -147,8 +147,8 @@
            var humidityIcon = new Button
            {
                X = temperatureText.Right,
                Width = Application.GetMinRealAverage(58),
                Height = Application.GetMinRealAverage(58),
                Width = this.GetPictrueRealSize(58),
                Height = this.GetPictrueRealSize(58),
                Gravity = Gravity.CenterVertical,
                UnSelectedImagePath = "Room/Humidity.png"
            };
@@ -163,8 +163,8 @@
                TextAlignment = TextAlignment.CenterLeft
            };
            if (LocalDevice.Current.GetDevice(room.HumidityDevice) != null)
            {
                //这个设备要存在本地才行
            {
                //这个设备要存在本地才行
                humidityText.Text = room.Humidity == 0 ? "0.0%" : room.Humidity.ToString() + "%";
            }
            roomTemperatureBackground.AddChidren(humidityText);
@@ -172,7 +172,7 @@
            roomTemperatureBackground.Width = (humidityText.Width + temperatureText.Width + Application.GetRealWidth(150)) > Application.GetRealWidth(600) ? Application.GetRealWidth(600) : (humidityText.Width + temperatureText.Width + Application.GetRealWidth(150));
            if (string.IsNullOrEmpty(room.TemperatrueDevice) == false)
            {
            {
                //发送获取温度的命令
                var dev = Common.LocalDevice.Current.GetDevice(room.TemperatrueDevice);
                HdlDeviceAttributeLogic.Current.SendTemperatureStatuComand(dev);
@@ -180,7 +180,7 @@
            if (string.IsNullOrEmpty(room.HumidityDevice) == false)
            {
                var dev = Common.LocalDevice.Current.GetDevice(room.HumidityDevice);
                var dev = Common.LocalDevice.Current.GetDevice(room.HumidityDevice);
                HdlDeviceAttributeLogic.Current.SendHumidityStatuComand(dev);
            }
@@ -188,8 +188,8 @@
            {
                X = roomBackView.Width - Application.GetRealWidth(100 + 20),
                Y = Application.GetRealHeight(20),
                Width = Application.GetMinRealAverage(100),
                Height = Application.GetMinRealAverage(100),
                Width = this.GetPictrueRealSize(100),
                Height = this.GetPictrueRealSize(100),
                UnSelectedImagePath = "Room/List.png",
            };
            roomBackView.AddChidren(roomListBtn);
@@ -200,50 +200,50 @@
                var form = new UserCenter.Residence.EditorRoomInforForm();
                form.AddForm(room);
                form.FinishEditorEvent += (roomName2) =>
                {
                    //重新刷新控件
                    this.Init(this.room);
                form.FinishEditorEvent += (roomName2) =>
                {
                    //重新刷新控件
                    this.Init(this.room);
                };
            };
            //设备属性上报
            HdlGatewayReceiveLogic.Current.AddAttributeEvent("RoomView" + this.room.Id, ReceiveComandDiv.A设备属性上报, (report) =>
            HdlGatewayReceiveLogic.Current.AddAttributeEvent("RoomView" + this.room.Id, ReceiveComandDiv.A设备属性上报, (report) =>
            {
                if (this.temperDevice != null)
                {
                    //温度设备
                    if (report.DeviceAddr == temperDevice.DeviceAddr && report.DeviceEpoint == temperDevice.DeviceEpoint)
                    {
                        HdlThreadLogic.Current.RunMain(() =>
                        {
                            if (((TemperatureSensor)temperDevice).Temperatrue == 0)
                            {
                                temperatureText.Text = "0.0℃";
                            }
                            else
                            {
                                temperatureText.Text = ((TemperatureSensor)temperDevice).Temperatrue + "℃";
                            }
                        }, ShowErrorMode.NO);
                    }
                if (this.temperDevice != null)
                {
                    //温度设备
                    if (report.DeviceAddr == temperDevice.DeviceAddr && report.DeviceEpoint == temperDevice.DeviceEpoint)
                    {
                        HdlThreadLogic.Current.RunMain(() =>
                        {
                            if (((TemperatureSensor)temperDevice).Temperatrue == 0)
                            {
                                temperatureText.Text = "0.0℃";
                            }
                            else
                            {
                                temperatureText.Text = ((TemperatureSensor)temperDevice).Temperatrue + "℃";
                            }
                        }, ShowErrorMode.NO);
                    }
                }
                if (this.humidDevice != null)
                {
                    //湿度设备
                    if (report.DeviceAddr == humidDevice.DeviceAddr && report.DeviceEpoint == humidDevice.DeviceEpoint)
                    {
                        HdlThreadLogic.Current.RunMain(() =>
                        {
                            if (((TemperatureSensor)temperDevice).Humidity == 0)
                            {
                                humidityText.Text = "--%";
                            }
                            else
                            {
                                humidityText.Text = ((TemperatureSensor)temperDevice).Humidity + "%";
                            }
                        }, ShowErrorMode.NO);
                    }
                if (this.humidDevice != null)
                {
                    //湿度设备
                    if (report.DeviceAddr == humidDevice.DeviceAddr && report.DeviceEpoint == humidDevice.DeviceEpoint)
                    {
                        HdlThreadLogic.Current.RunMain(() =>
                        {
                            if (((TemperatureSensor)temperDevice).Humidity == 0)
                            {
                                humidityText.Text = "--%";
                            }
                            else
                            {
                                humidityText.Text = ((TemperatureSensor)temperDevice).Humidity + "%";
                            }
                        }, ShowErrorMode.NO);
                    }
                }
            });
        }
@@ -254,15 +254,15 @@
        public void HideName(bool statu)
        {
            roomNameBackground.Visible = roomTemperatureBackground.Visible = roomListBtn.Visible = !statu;
        }
        /// <summary>
        ///
        /// </summary>
        public override void RemoveFromParent()
        {
            HdlGatewayReceiveLogic.Current.RemoveEvent("RoomView" + this.room.Id);
            base.RemoveFromParent();
        }
        /// <summary>
        ///
        /// </summary>
        public override void RemoveFromParent()
        {
            HdlGatewayReceiveLogic.Current.RemoveEvent("RoomView" + this.room.Id);
            base.RemoveFromParent();
        }
    }
}