| | |
| | | /// </summary> |
| | | public class DevicePmSensorDetailCardForm : DeviceDetailCardCommonForm |
| | | { |
| | | #region ■ 变量声明___________________________ |
| | | #region ■ 变量声明___________________________
|
| | | /// <summary>
|
| | | /// 界面上可以操作的控件
|
| | | /// </summary>
|
| | |
| | | this.pMSensor = (PMSensor)this.device; |
| | | //先清空 |
| | | this.listControl = new List<ButtonBase>(); |
| | | InitFreshAirControl(frameWhiteBack); |
| | | InitPmControl(frameWhiteBack); |
| | | UpdateStatus(); |
| | | } |
| | | |
| | |
| | | /// 初始化PM2.5传感器控件
|
| | | /// </summary>
|
| | | /// <param name="frameWhiteBack"></param>
|
| | | private void InitFreshAirControl(FrameLayout frameWhiteBack)
|
| | | private void InitPmControl(FrameLayout frameWhiteBack)
|
| | | { |
| | | //湿度容器 |
| | | var frameHumidityPic = new FrameLayout(); |
| | |
| | | var btnHumidityStatus = new NormalViewControl(193, 92, true);
|
| | | btnHumidityStatus.Y = Application.GetRealHeight(181); |
| | | btnHumidityStatus.Text = "20"; |
| | | btnHumidityStatus.TextSize = 32; |
| | | btnHumidityStatus.TextSize = 30; |
| | | btnHumidityStatus.TextColor = ZigbeeColor.Current.XMWhite; |
| | | btnHumidityStatus.TextAlignment = TextAlignment.CenterRight; |
| | | frameHumidityPic.AddChidren(btnHumidityStatus); |
| | |
| | | //湿度单位 |
| | | var btnHumidityUnit = new NormalViewControl(37 + 81, 40, true);
|
| | | btnHumidityUnit.Y = Application.GetRealHeight(181 + 46); |
| | | btnHumidityUnit.X = Application.GetRealWidth(190); |
| | | btnHumidityUnit.X = Application.GetRealWidth(180); |
| | | btnHumidityUnit.Text = "%"; |
| | | btnHumidityUnit.TextSize = 14; |
| | | btnHumidityUnit.TextColor = ZigbeeColor.Current.XMWhite; |
| | |
| | | var btnTemperatureStatus = new NormalViewControl(193, 92, true);
|
| | | btnTemperatureStatus.Y = Application.GetRealHeight(181); |
| | | btnTemperatureStatus.Text = "20"; |
| | | btnTemperatureStatus.TextSize = 32; |
| | | btnTemperatureStatus.TextSize = 30; |
| | | btnTemperatureStatus.TextColor = ZigbeeColor.Current.XMWhite; |
| | | btnTemperatureStatus.TextAlignment = TextAlignment.CenterRight; |
| | | frameTemperaturePic.AddChidren(btnTemperatureStatus); |
| | |
| | | //温度单位 |
| | | var btnTemperatureUnit = new NormalViewControl(40 + 81, 40, true);
|
| | | btnTemperatureUnit.Y = Application.GetRealHeight(181 + 46); |
| | | btnTemperatureUnit.X = Application.GetRealWidth(188); |
| | | btnTemperatureUnit.X = Application.GetRealWidth(180); |
| | | btnTemperatureUnit.Text = "℃"; |
| | | btnTemperatureUnit.TextSize = 14; |
| | | btnTemperatureUnit.TextColor = ZigbeeColor.Current.XMWhite; |
| | |
| | | framePmPic.AddChidren(btnPmText); |
| | | |
| | | //PM2.5数据(第3个,listControl【2】) |
| | | var btnPmStatus = new NormalViewControl(109 + 40, 92, true);
|
| | | var btnPmStatus = new NormalViewControl(162, 92, true);
|
| | | btnPmStatus.Y = Application.GetRealHeight(181); |
| | | btnPmStatus.Text = "35"; |
| | | btnPmStatus.TextSize = 32; |
| | | btnPmStatus.Text = "155"; |
| | | btnPmStatus.TextSize = 30; |
| | | btnPmStatus.TextColor = ZigbeeColor.Current.XMWhite; |
| | | btnPmStatus.TextAlignment = TextAlignment.CenterRight; |
| | | framePmPic.AddChidren(btnPmStatus); |
| | | this.listControl.Add(btnPmStatus); |
| | | |
| | | //PM2.5单位 |
| | | var btnPmUnit = new NormalViewControl(124 + 15, 43, true);
|
| | | //PM2.5单位 (第4个,listControl【3】) |
| | | var btnPmUnit = new NormalViewControl(120 + 26, 43, true);
|
| | | btnPmUnit.Y = Application.GetRealHeight(181 + 46); |
| | | btnPmUnit.X = Application.GetRealWidth(150); |
| | | btnPmUnit.X = Application.GetRealWidth(153); |
| | | btnPmUnit.Text = "μg/m³"; |
| | | btnPmUnit.TextSize = 14; |
| | | btnPmUnit.TextColor = ZigbeeColor.Current.XMWhite; |
| | | btnPmUnit.TextAlignment = TextAlignment.CenterLeft; |
| | | framePmPic.AddChidren(btnPmUnit); |
| | | this.listControl.Add(btnPmUnit); |
| | | } |
| | | #endregion |
| | | #endregion |
| | | |
| | | #region ■ 是否获取网关反馈的结果_____________
|
| | | |
| | |
| | | } |
| | | #endregion |
| | | |
| | | #region ■ 设置方法 |
| | | /// <summary> |
| | | ///命令 |
| | | ///0:Off |
| | | ///1:Low |
| | | ///3:High |
| | | ///4:On |
| | | ///5:Auto |
| | | /// 15:Manual |
| | | /// </summary> |
| | | private void SetFanComand(int command)
|
| | | {
|
| | | //检测是否获取网关反馈的结果,如果网关没有回复,则会弹出消息
|
| | | this.StartCheckResponeResult(this.listControl, (result) =>
|
| | | {
|
| | | //接收到网关回复
|
| | | if (result == true)
|
| | | { |
| | | }
|
| | | }); |
| | | |
| | | |
| | | } |
| | | #endregion |
| | | |
| | | #region ■ 刷新状态_____________ |
| | | /// <summary> |
| | | /// 刷新状态 |
| | |
| | | this.listControl[0].Text = pMSensor.currentTemperature.ToString(); |
| | | this.listControl[1].Text = pMSensor.currentHumidity.ToString(); |
| | | this.listControl[2].Text = pMSensor.currentPmData.ToString(); |
| | | //设置状态文字 |
| | | this.SetStatuText(Language.StringByID(R.MyInternationalizationString.uOpen1)); |
| | | //设置状态文字 |
| | | var curText = Language.StringByID(R.MyInternationalizationString.AirQuality) + QuailityType(); |
| | | this.SetStatuText(curText); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 质量等级 |
| | | /// </summary> |
| | | private string QuailityType() |
| | | { |
| | | string curQuality = string.Empty; |
| | | |
| | | if (pMSensor.currentPmData <= 35 && pMSensor.currentPmData >= 0) |
| | | { |
| | | curQuality = Language.StringByID(R.MyInternationalizationString.ExcellentAirQuality); |
| | | |
| | | if (pMSensor.currentPmData < 10) |
| | | { |
| | | this.listControl[2].Width = Application.GetRealWidth(188 - 70); |
| | | this.listControl[3].X = Application.GetRealWidth(180 - 70); |
| | | } |
| | | else |
| | | { |
| | | this.listControl[2].Width = Application.GetRealWidth(193 - 40); |
| | | this.listControl[3].X = Application.GetRealWidth(137); |
| | | } |
| | | } |
| | | |
| | | else if (pMSensor.currentPmData <= 75 && pMSensor.currentPmData > 35) |
| | | { |
| | | curQuality = Language.StringByID(R.MyInternationalizationString.ExcellentAirQuality); |
| | | this.listControl[2].Width = Application.GetRealWidth(193 - 40); |
| | | this.listControl[3].X = Application.GetRealWidth(137); |
| | | } |
| | | else if (pMSensor.currentPmData <= 115 && pMSensor.currentPmData > 75) |
| | | { |
| | | curQuality = Language.StringByID(R.MyInternationalizationString.ExcellentAirQuality); |
| | | |
| | | if (pMSensor.currentPmData < 100) |
| | | { |
| | | this.listControl[2].Width = Application.GetRealWidth(193 - 40); |
| | | this.listControl[3].X = Application.GetRealWidth(137); |
| | | } |
| | | else |
| | | { |
| | | this.listControl[2].Width = Application.GetRealWidth(162); |
| | | this.listControl[3].X = Application.GetRealWidth(153); |
| | | } |
| | | } |
| | | else if (pMSensor.currentPmData <= 150 && pMSensor.currentPmData > 115) |
| | | { |
| | | curQuality = Language.StringByID(R.MyInternationalizationString.ExcellentAirQuality); |
| | | this.listControl[2].Width = Application.GetRealWidth(162); |
| | | this.listControl[3].X = Application.GetRealWidth(153); |
| | | } |
| | | else if (pMSensor.currentPmData <= 250 && pMSensor.currentPmData > 150) |
| | | { |
| | | curQuality = Language.StringByID(R.MyInternationalizationString.ExcellentAirQuality); |
| | | this.listControl[2].Width = Application.GetRealWidth(162); |
| | | this.listControl[3].X = Application.GetRealWidth(153); |
| | | } |
| | | else if (pMSensor.currentPmData > 250) |
| | | { |
| | | curQuality = Language.StringByID(R.MyInternationalizationString.ExcellentAirQuality); |
| | | this.listControl[2].Width = Application.GetRealWidth(162); |
| | | this.listControl[3].X = Application.GetRealWidth(153); |
| | | } |
| | | else |
| | | { |
| | | curQuality = ""; |
| | | this.listControl[2].Width = Application.GetRealWidth(162); |
| | | this.listControl[3].X = Application.GetRealWidth(153); |
| | | } |
| | | //设置状态文字 |
| | | return curQuality; |
| | | } |
| | | #endregion |
| | | |
| | | |
| | | |
| | | } |
| | | } |