黄学彪
2020-12-17 9f326f4000847e6167d8166fa2f6a66f53cb3734
ZigbeeApp/Shared/Phone/Device/CommonForm/RoomView.cs
@@ -53,9 +53,9 @@
            this.room = r;
            this.temperDevice = Common.LocalDevice.Current.GetDevice(room.TemperatrueDevice);
            this.temperDevice = HdlDeviceCommonLogic.Current.GetDevice(room.TemperatrueDevice);
            this.humidDevice = Common.LocalDevice.Current.GetDevice(room.HumidityDevice);
            this.humidDevice = HdlDeviceCommonLogic.Current.GetDevice(room.HumidityDevice);
            var roomBackView = new FrameLayout()
            {
@@ -136,10 +136,11 @@
                TextSize = 14,
                TextAlignment = TextAlignment.CenterLeft
            };
            if (LocalDevice.Current.GetDevice(room.TemperatrueDevice) != null)
            if (this.temperDevice != null)
            {
                //这个设备要存在本地才行
                temperatureText.Text = room.Temperatrue == 0 ? "0.0℃" : room.Temperatrue.ToString() + "℃";
                decimal temperatrue = (decimal)temperDevice.GetType().InvokeMember("currentTemperature", System.Reflection.BindingFlags.GetField, null, temperDevice, null);
                temperatureText.Text = temperatrue == 0 ? "0.0℃" : temperatrue.ToString() + "℃";
            }
            roomTemperatureBackground.AddChidren(temperatureText);
            temperatureText.Width = temperatureText.GetTextWidth() + Application.GetRealWidth(60);
@@ -162,10 +163,12 @@
                TextSize = 14,
                TextAlignment = TextAlignment.CenterLeft
            };
            if (LocalDevice.Current.GetDevice(room.HumidityDevice) != null)
            if (this.humidDevice != null)
            {
                //这个设备要存在本地才行
                humidityText.Text = room.Humidity == 0 ? "0.0%" : room.Humidity.ToString() + "%";
                decimal humidity = (decimal)humidDevice.GetType().InvokeMember("currentHumidity", System.Reflection.BindingFlags.GetField, null, humidDevice, null);
                humidityText.Text = humidity == 0 ? "0.0%" : humidity.ToString() + "%";
            }
            roomTemperatureBackground.AddChidren(humidityText);
            humidityText.Width = humidityText.GetTextWidth() + Application.GetRealWidth(60);
@@ -174,13 +177,13 @@
            if (string.IsNullOrEmpty(room.TemperatrueDevice) == false)
            {
                //发送获取温度的命令
                var dev = Common.LocalDevice.Current.GetDevice(room.TemperatrueDevice);
                var dev = HdlDeviceCommonLogic.Current.GetDevice(room.TemperatrueDevice);
                HdlDeviceAttributeLogic.Current.SendTemperatureStatuComand(dev);
            }
            if (string.IsNullOrEmpty(room.HumidityDevice) == false)
            {
                var dev = Common.LocalDevice.Current.GetDevice(room.HumidityDevice);
                var dev = HdlDeviceCommonLogic.Current.GetDevice(room.HumidityDevice);
                HdlDeviceAttributeLogic.Current.SendHumidityStatuComand(dev);
            }
@@ -216,13 +219,14 @@
                    {
                        HdlThreadLogic.Current.RunMain(() =>
                        {
                            if (((TemperatureSensor)temperDevice).Temperatrue == 0)
                            decimal temperatrue = (decimal)temperDevice.GetType().InvokeMember("currentTemperature", System.Reflection.BindingFlags.GetField, null, temperDevice, null);
                            if (temperatrue == 0)
                            {
                                temperatureText.Text = "0.0℃";
                            }
                            else
                            {
                                temperatureText.Text = ((TemperatureSensor)temperDevice).Temperatrue + "℃";
                                temperatureText.Text = temperatrue + "℃";
                            }
                        }, ShowErrorMode.NO);
                    }
@@ -234,13 +238,14 @@
                    {
                        HdlThreadLogic.Current.RunMain(() =>
                        {
                            if (((TemperatureSensor)temperDevice).Humidity == 0)
                            decimal humidity = (decimal)humidDevice.GetType().InvokeMember("currentHumidity", System.Reflection.BindingFlags.GetField, null, humidDevice, null);
                            if (humidity == 0)
                            {
                                humidityText.Text = "--%";
                            }
                            else
                            {
                                humidityText.Text = ((TemperatureSensor)temperDevice).Humidity + "%";
                                humidityText.Text = humidity + "%";
                            }
                        }, ShowErrorMode.NO);
                    }