using ZigBee.Device;
using System;
using System.Collections.Generic;
using System.Text;
using Shared.Phone.UserCenter;
namespace Shared.Phone.MainPage.ControlForm
{
///
/// 温湿度传感器的深度卡片界面
///
public class DeviceTemperatureHumidityDetailCardForm : DeviceDetailCardCommonForm
{
#region ■ 变量声明___________________________
///
/// 值显示控件
///
private NormalViewControl btnValue = null;
///
/// 单位控件
///
private NormalViewControl btnUnit = null;
///
/// 图片控件的宽度
///
private int picContrWidth = 0;
#endregion
#region ■ 初始化_____________________________
///
/// 底层初始化中部控件完成之后
///
///
public override void InitMiddleFrameAfter(FrameLayout frameWhiteBack)
{
//图片控件的宽度
this.picContrWidth = this.GetPictrueRealSize(380);
//左滑不能
this.ScrollEnabled = false;
//湿度
if (((TemperatureSensor)this.device).SensorDiv == 2)
{
this.InitHumidityControl(frameWhiteBack);
}
//温度
else if (((TemperatureSensor)this.device).SensorDiv == 1)
{
this.InitTemperatureControl(frameWhiteBack);
}
//查看历史记录
var btnHistory = new NormalViewControl(207, 50, true);
btnHistory.Y = Application.GetRealHeight(1094);
btnHistory.TextSize = 12;
btnHistory.TextAlignment = TextAlignment.Center;
btnHistory.TextColor = UserCenterColor.Current.TextOrangeColor;
btnHistory.Text = Language.StringByID(R.MyInternationalizationString.CheckAirQualitySensorHistory);
btnHistory.Width = btnHistory.GetRealWidthByText();
btnHistory.Gravity = Gravity.CenterHorizontal;
frameWhiteBack.AddChidren(btnHistory);
//底线
var btnLine = new NormalViewControl(btnHistory.Width, ControlCommonResourse.BottomLineHeight, false);
btnLine.BackgroundColor = UserCenterColor.Current.TextOrangeColor;
btnLine.Gravity = Gravity.CenterHorizontal;
btnLine.Y = btnHistory.Bottom - Application.GetRealHeight(8);
frameWhiteBack.AddChidren(btnLine);
btnHistory.ButtonClickEvent += (sender, e) =>
{
//查看历史记录事件
var form = new DeviceTemperatureHistoryForm();
form.AddForm(this.device);
};
}
#endregion
#region ■ 初始化湿度界面_____________________
///
/// 初始化湿度界面
///
///
private void InitHumidityControl(FrameLayout frameWhiteBack)
{
//湿度容器
var frameHumidityPic = new FrameLayout();
frameHumidityPic.Y = Application.GetRealHeight(351);
frameHumidityPic.Width = picContrWidth;
frameHumidityPic.Height = this.GetPictrueRealSize(426);
frameHumidityPic.BackgroundImagePath = "PM2.5Sensor/HumidityPic.png";
frameHumidityPic.Gravity = Gravity.CenterHorizontal;
frameWhiteBack.AddChidren(frameHumidityPic);
//湿度文本
var btnHumidityText = new NormalViewControl(frameHumidityPic.Width, Application.GetRealHeight(60), false);
btnHumidityText.Y = Application.GetRealHeight(58);
btnHumidityText.TextID = R.MyInternationalizationString.Humidity;
btnHumidityText.TextColor = UserCenterColor.Current.White;
btnHumidityText.TextAlignment = TextAlignment.Center;
frameHumidityPic.AddChidren(btnHumidityText);
//湿度数据
this.btnValue = new NormalViewControl(193, 120, true);
btnValue.Y = Application.GetRealHeight(214);
btnValue.Text = ((TemperatureSensor)this.device).currentHumidity.ToString();
btnValue.TextSize = 38;
btnValue.TextColor = UserCenterColor.Current.White;
btnValue.IsBold = true;
btnValue.TextAlignment = TextAlignment.BottomCenter;
btnValue.Width = btnValue.GetRealWidthByText();
frameHumidityPic.AddChidren(btnValue);
//湿度单位
this.btnUnit = new NormalViewControl(60, 100, true);
btnUnit.X = btnValue.Right;
btnUnit.Y = btnValue.Y;
btnUnit.Text = "%";
btnUnit.TextSize = 17;
btnUnit.TextColor = UserCenterColor.Current.White;
btnUnit.TextAlignment = TextAlignment.BottomLeft;
btnUnit.IsBold = true;
frameHumidityPic.AddChidren(btnUnit);
//刷新值和单位控件的坐标位置
this.RefreshValueAndUintLocation();
}
#endregion
#region ■ 初始化温度界面_____________________
///
/// 初始化温度界面
///
///
private void InitTemperatureControl(FrameLayout frameWhiteBack)
{
//温度容器
var frameHumidityPic = new FrameLayout();
frameHumidityPic.Y = Application.GetRealHeight(351);
frameHumidityPic.Width = picContrWidth;
frameHumidityPic.Height = this.GetPictrueRealSize(426);
frameHumidityPic.BackgroundImagePath = "PM2.5Sensor/TemperaturePic.png";
frameHumidityPic.Gravity = Gravity.CenterHorizontal;
frameWhiteBack.AddChidren(frameHumidityPic);
//温度文本
var btnTemperatureText = new NormalViewControl(frameHumidityPic.Width, Application.GetRealHeight(60), false);
btnTemperatureText.Y = Application.GetRealHeight(58);
btnTemperatureText.TextID = R.MyInternationalizationString.Temperature;
btnTemperatureText.TextColor = UserCenterColor.Current.White;
btnTemperatureText.TextAlignment = TextAlignment.Center;
frameHumidityPic.AddChidren(btnTemperatureText);
//温度数据
this.btnValue = new NormalViewControl(193, 120, true);
btnValue.Y = Application.GetRealHeight(214);
btnValue.Text = ((TemperatureSensor)this.device).currentTemperature.ToString();
btnValue.TextSize = 38;
btnValue.TextColor = UserCenterColor.Current.White;
btnValue.IsBold = true;
btnValue.TextAlignment = TextAlignment.BottomCenter;
btnValue.Width = btnValue.GetRealWidthByText();
frameHumidityPic.AddChidren(btnValue);
//温度单位
this.btnUnit = new NormalViewControl(60, 100, true);
btnUnit.X = btnValue.Right;
btnUnit.Y = btnValue.Y;
btnUnit.Text = "℃";
btnUnit.TextSize = 17;
btnUnit.TextColor = UserCenterColor.Current.White;
btnUnit.TextAlignment = TextAlignment.BottomLeft;
btnUnit.IsBold = true;
frameHumidityPic.AddChidren(btnUnit);
//刷新值和单位控件的坐标位置
this.RefreshValueAndUintLocation();
}
#endregion
#region ■ 是否获取网关反馈的结果_____________
///
/// 检测网关的反馈结果(属性上报的对象:device.DeviceStatusReport)
///
/// 命令区分
/// 上报数据
///
public override bool CheckResponeResultStatu(ReceiveComandDiv comandDiv, CommonDevice report)
{
if (comandDiv == ReceiveComandDiv.A设备属性上报)
{
HdlThreadLogic.Current.RunMain(() =>
{
//湿度
if (((TemperatureSensor)this.device).SensorDiv == 2)
{
this.btnValue.Text = ((TemperatureSensor)this.device).currentHumidity.ToString();
}
//温度
else if (((TemperatureSensor)this.device).SensorDiv == 1)
{
this.btnValue.Text = ((TemperatureSensor)this.device).currentTemperature.ToString();
}
//刷新值和单位控件的坐标位置
this.RefreshValueAndUintLocation();
});
return true;
}
return false;
}
#endregion
#region ■ 一般方法___________________________
///
/// 刷新值和单位控件的坐标位置
///
private void RefreshValueAndUintLocation()
{
this.btnValue.Width = this.btnValue.GetRealWidthByText();
int xx = (this.picContrWidth - (this.btnUnit.Width + this.btnValue.Width)) / 2;
this.btnValue.X = xx;
this.btnUnit.X = this.btnValue.Right;
}
#endregion
}
}