using ZigBee.Device;
|
using System;
|
using System.Collections.Generic;
|
using System.Text;
|
using Shared.Phone.UserCenter;
|
|
namespace Shared.Phone.MainPage.ControlForm
|
{
|
/// <summary>
|
/// 温湿度传感器的深度卡片界面
|
/// </summary>
|
public class DeviceTemperatureHumidityDetailCardForm : DeviceDetailCardCommonForm
|
{
|
#region ■ 变量声明___________________________
|
|
/// <summary>
|
/// 值显示控件
|
/// </summary>
|
private NormalViewControl btnValue = null;
|
/// <summary>
|
/// 单位控件
|
/// </summary>
|
private NormalViewControl btnUnit = null;
|
/// <summary>
|
/// 图片控件的宽度
|
/// </summary>
|
private int picContrWidth = 0;
|
|
#endregion
|
|
#region ■ 初始化_____________________________
|
|
/// <summary>
|
/// 底层初始化中部控件完成之后
|
/// </summary>
|
/// <param name="frameWhiteBack"></param>
|
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 ■ 初始化湿度界面_____________________
|
|
/// <summary>
|
/// 初始化湿度界面
|
/// </summary>
|
/// <param name="frameWhiteBack"></param>
|
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 ■ 初始化温度界面_____________________
|
|
/// <summary>
|
/// 初始化温度界面
|
/// </summary>
|
/// <param name="frameWhiteBack"></param>
|
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 ■ 是否获取网关反馈的结果_____________
|
|
/// <summary>
|
/// 检测网关的反馈结果(属性上报的对象:device.DeviceStatusReport)
|
/// </summary>
|
/// <param name="comandDiv">命令区分</param>
|
/// <param name="report">上报数据</param>
|
/// <returns></returns>
|
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 ■ 一般方法___________________________
|
|
/// <summary>
|
/// 刷新值和单位控件的坐标位置
|
/// </summary>
|
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
|
}
|
}
|