| | |
| | | //房间图片
|
| | | var btnPic = new ImageView();
|
| | | btnPic.Y = Application.GetRealHeight(60);
|
| | | btnPic.Width = Application.GetMinRealAverage(824);
|
| | | btnPic.Height = Application.GetMinRealAverage(549);
|
| | | btnPic.Width = this.GetPictrueRealSize(824);
|
| | | btnPic.Height = this.GetPictrueRealSize(549);
|
| | | btnPic.Radius = (uint)Application.GetRealHeight(17);
|
| | | btnPic.Gravity = Gravity.CenterHorizontal;
|
| | | if (this.editorRoom.BackgroundImageType == 0)
|
| | |
| | | var btnTemper = rowTemperature.AddMostRightView(Language.StringByID(R.MyInternationalizationString.uNothing), 300);
|
| | | //底线
|
| | | rowTemperature.AddBottomLine();
|
| | | //分享的房间不能修改
|
| | | if (this.editorRoom.IsSharedRoom == false)
|
| | | //分享的房间不能修改 或者当前住宅不是虚拟的
|
| | | if (this.editorRoom.IsSharedRoom == false && Common.Config.Instance.Home.IsVirtually == false)
|
| | | {
|
| | | rowTemperature.ButtonClickEvent += (sender, e) =>
|
| | | {
|
| | |
| | | var btnHumi = rowHumidity.AddMostRightView(Language.StringByID(R.MyInternationalizationString.uNothing), 300);
|
| | | //底线
|
| | | rowHumidity.AddBottomLine();
|
| | | //分享的房间不能修改
|
| | | if (this.editorRoom.IsSharedRoom == false)
|
| | | //分享的房间不能修改 或者当前住宅不是虚拟的
|
| | | if (this.editorRoom.IsSharedRoom == false && Common.Config.Instance.Home.IsVirtually == false)
|
| | | {
|
| | | rowHumidity.ButtonClickEvent += (sender, e) =>
|
| | | {
|
| | |
| | | if (changedFloor == false)
|
| | | {
|
| | | //刷新左滑的房间列表界面的指定房间的信息
|
| | | MainPage.ListRoomViewFrom.Instance.RefreshRoomInfo(this.editorRoom);
|
| | | MainPage.LeftListRoomViewFrom.Instance.RefreshRoomInfo(this.editorRoom);
|
| | | }
|
| | | else
|
| | | {
|
| | | //刷新左滑的房间列表界面的房间列表信息
|
| | | MainPage.ListRoomViewFrom.Instance.RefreshListRoom();
|
| | | MainPage.LeftListRoomViewFrom.Instance.RefreshListRoom();
|
| | | }
|
| | |
|
| | | //算了,这里如果按下保存,则主页需要重新刷新
|
| | | UserView.UserPage.Instance.RefreshAllForm = true;
|
| | |
|
| | | this.CloseForm();
|
| | | };
|
| | | }
|
| | |
| | | {
|
| | | listDevice.Add(device);
|
| | | }
|
| | | //PM2.5是温度和湿度合在同一个端点
|
| | | else if (device.Type == ZigBee.Device.DeviceType.PMSensor)
|
| | | {
|
| | | listDevice.Add(device);
|
| | | }
|
| | | }
|
| | | var listSelect = new List<string>() { cloneRoom.TemperatrueDevice };
|
| | | var form = new SelectDeviceForm();
|
| | |
| | | {
|
| | | return;
|
| | | }
|
| | |
|
| | | foreach (var data in report.DeviceStatusReport.AttriBute)
|
| | | var localDevice = Common.LocalDevice.Current.GetDevice(mainKeys);
|
| | | HdlThreadLogic.Current.RunMain(() =>
|
| | | {
|
| | | if (data.AttributeId == (int)ZigBee.Device.AttriButeId.MeasuredValue)
|
| | | if (((ZigBee.Device.TemperatureSensor)localDevice).Temperatrue == 0)
|
| | | {
|
| | | 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);
|
| | | //记录温度
|
| | | 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);
|
| | | //记录温度
|
| | | this.cloneRoom.Temperatrue = Convert.ToDecimal(strValue.Insert(strValue.Length - 1, "."));
|
| | | btnTemper.Text = this.cloneRoom.Temperatrue.ToString() + "℃";
|
| | | }
|
| | | });
|
| | | //0℃
|
| | | btnTemper.Text = "0.0℃";
|
| | | this.cloneRoom.Temperatrue = 0;
|
| | | }
|
| | | }
|
| | | else
|
| | | {
|
| | | //记录温度
|
| | | this.cloneRoom.Temperatrue = ((ZigBee.Device.TemperatureSensor)localDevice).Temperatrue;
|
| | | btnTemper.Text = this.cloneRoom.Temperatrue.ToString() + "℃";
|
| | | }
|
| | | }, ShowErrorMode.NO);
|
| | | }));
|
| | | //发送获取温度的命令
|
| | | ((ZigBee.Device.TemperatureSensor)device).ReadTemperatureOrHumidity();
|
| | |
| | | {
|
| | | //获取湿度传感器
|
| | | if (device is ZigBee.Device.TemperatureSensor && ((ZigBee.Device.TemperatureSensor)device).SensorDiv == 2)
|
| | | {
|
| | | listDevice.Add(device);
|
| | | }
|
| | | //新风
|
| | | else if (device.Type == ZigBee.Device.DeviceType.FreshAirHumiditySensor)
|
| | | {
|
| | | listDevice.Add(device);
|
| | | }
|
| | | //PM2.5是温度和湿度合在同一个端点
|
| | | else if (device.Type == ZigBee.Device.DeviceType.PMSensor)
|
| | | {
|
| | | listDevice.Add(device);
|
| | | }
|
| | |
| | | {
|
| | | return;
|
| | | }
|
| | | foreach (var data in report.DeviceStatusReport.AttriBute)
|
| | | var localDevice = Common.LocalDevice.Current.GetDevice(mainKeys);
|
| | | HdlThreadLogic.Current.RunMain(() =>
|
| | | {
|
| | | if (data.AttributeId == (int)ZigBee.Device.AttriButeId.MeasuredValue)
|
| | | decimal humidity = (decimal)localDevice.GetType().InvokeMember("Humidity", System.Reflection.BindingFlags.GetField, null, localDevice, null);
|
| | | if (humidity == 0)
|
| | | {
|
| | | 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);
|
| | | //记录湿度
|
| | | this.cloneRoom.Humidity = Convert.ToDecimal(strValue.Insert(strValue.Length - 1, "."));
|
| | | btnHumi.Text = this.cloneRoom.Humidity.ToString() + "%";
|
| | | }
|
| | | });
|
| | | //0
|
| | | btnHumi.Text = "0.0%";
|
| | | this.cloneRoom.Humidity = 0;
|
| | | }
|
| | | }
|
| | | else
|
| | | {
|
| | | //记录湿度
|
| | | this.cloneRoom.Humidity = humidity;
|
| | | btnHumi.Text = this.cloneRoom.Humidity.ToString() + "%";
|
| | | }
|
| | | }, ShowErrorMode.NO);
|
| | | });
|
| | | //发送获取湿度的命令
|
| | | ((ZigBee.Device.TemperatureSensor)device).ReadTemperatureOrHumidity();
|
| | | device.GetType().InvokeMember("ReadTemperatureOrHumidity", System.Reflection.BindingFlags.InvokeMethod, null, device, null);
|
| | | }
|
| | |
|
| | | #endregion
|