old mode 100644
new mode 100755
| | |
| | | /// </summary>
|
| | | private List<ButtonBase> listControl = new List<ButtonBase>(); |
| | | /// <summary>
|
| | | /// 界面上可以操作的控件 |
| | | /// </summary> |
| | | private List<FrameLayout> listFrameLayout = new List<FrameLayout>(); |
| | | /// <summary> |
| | | /// 控件
|
| | | /// </summary>
|
| | | private PMSensor pMSensor = null; |
| | | private PMSensor pMSensor = null;
|
| | | /// <summary>
|
| | | /// 状态控件
|
| | | /// </summary>
|
| | | private NormalViewControl btnStatu = null; |
| | | private NormalViewControl btnStatu = null;
|
| | | /// <summary>
|
| | | /// 当前的文本
|
| | | /// </summary>
|
| | | private string CurrentText = string.Empty; |
| | | |
| | | private string CurrentText = string.Empty;
|
| | |
|
| | | /// <summary>
|
| | | /// 设备名称控件
|
| | | /// </summary>
|
| | | private NormalViewControl btnDeviceName = null; |
| | | |
| | | private NormalViewControl btnDeviceName = null;
|
| | |
|
| | | #endregion |
| | | |
| | | #region ■ 初始化_____________________________ |
| | | public override void InitMiddleFrameAfter(FrameLayout frameWhiteBack) |
| | | { |
| | | //左滑不能 |
| | | this.ScrollEnabled = true; |
| | | this.ScrollEnabled = true;
|
| | | this.pMSensor = (PMSensor)this.device; |
| | | //先清空 |
| | | this.listControl = new List<ButtonBase>(); |
| | |
| | | /// 初始化PM2.5传感器控件
|
| | | /// </summary>
|
| | | /// <param name="frameWhiteBack"></param>
|
| | | private void InitPmControl(FrameLayout frameWhiteBack) |
| | | private void InitPmControl(FrameLayout frameWhiteBack)
|
| | | { |
| | | //湿度容器 |
| | | var frameHumidityPic = new FrameLayout(); |
| | | frameHumidityPic.X = Application.GetMinRealAverage(138); |
| | | frameHumidityPic.Y = Application.GetRealHeight(242); |
| | | frameHumidityPic.Width = Application.GetMinRealAverage(311); |
| | | frameHumidityPic.X = Application.GetMinRealAverage(138);
|
| | | frameHumidityPic.Y = Application.GetRealHeight(242);
|
| | | frameHumidityPic.Width = Application.GetMinRealAverage(311);
|
| | | frameHumidityPic.Height = Application.GetMinRealAverage(351); |
| | | frameHumidityPic.BackgroundImagePath = "PM2.5Sensor/HumidityPic.png"; |
| | | frameWhiteBack.AddChidren(frameHumidityPic); |
| | | |
| | | //湿度文本 |
| | | var btnHumidityText = new NormalViewControl(311, 49, true); |
| | | var btnHumidityText = new NormalViewControl(311, 49, true);
|
| | | btnHumidityText.Y = Application.GetRealHeight(45); |
| | | btnHumidityText.TextID = R.MyInternationalizationString.Humidity; |
| | | btnHumidityText.TextSize = 12; |
| | |
| | | btnHumidityText.TextAlignment = TextAlignment.Center; |
| | | frameHumidityPic.AddChidren(btnHumidityText); |
| | | |
| | | //湿度数据(第1个,listControl【0】) |
| | | var btnHumidityStatus = new NormalViewControl(193, 92, true); |
| | | btnHumidityStatus.Y = Application.GetRealHeight(181); |
| | | //湿度文本容器 |
| | | var frameHumidityTextFrameLayout = new FrameLayout(); |
| | | frameHumidityTextFrameLayout.Gravity = Gravity.CenterHorizontal; |
| | | frameHumidityTextFrameLayout.Y = Application.GetRealHeight(113); |
| | | frameHumidityTextFrameLayout.Height = Application.GetRealHeight(160); |
| | | frameHumidityPic.AddChidren(frameHumidityTextFrameLayout); |
| | | |
| | | //湿度数据 |
| | | var btnHumidityStatus = new NormalViewControl(193, 160, true);
|
| | | btnHumidityStatus.Text = "20"; |
| | | btnHumidityStatus.TextSize = 30; |
| | | btnHumidityStatus.TextColor = ZigbeeColor.Current.XMWhite; |
| | | btnHumidityStatus.TextAlignment = TextAlignment.CenterRight; |
| | | frameHumidityPic.AddChidren(btnHumidityStatus); |
| | | this.listControl.Add(btnHumidityStatus); |
| | | btnHumidityStatus.TextAlignment = TextAlignment.BottomRight; |
| | | frameHumidityTextFrameLayout.AddChidren(btnHumidityStatus); |
| | | |
| | | //湿度单位 |
| | | var btnHumidityUnit = new NormalViewControl(37 + 81, 40, true); |
| | | btnHumidityUnit.Y = Application.GetRealHeight(181 + 46); |
| | | btnHumidityUnit.X = Application.GetRealWidth(180); |
| | | var btnHumidityUnit = new NormalViewControl(50, 140, true);
|
| | | btnHumidityUnit.X = btnHumidityStatus.Right; |
| | | btnHumidityUnit.Text = "%"; |
| | | btnHumidityUnit.TextSize = 14; |
| | | btnHumidityUnit.TextColor = ZigbeeColor.Current.XMWhite; |
| | | btnHumidityUnit.TextAlignment = TextAlignment.CenterLeft; |
| | | frameHumidityPic.AddChidren(btnHumidityUnit); |
| | | btnHumidityUnit.TextAlignment = TextAlignment.BottomLeft; |
| | | frameHumidityTextFrameLayout.AddChidren(btnHumidityUnit); |
| | | |
| | | //温度容器 |
| | | var frameTemperaturePic = new FrameLayout(); |
| | | frameTemperaturePic.X = Application.GetMinRealAverage(518); |
| | | frameTemperaturePic.Y = Application.GetRealHeight(242); |
| | | frameTemperaturePic.Width = Application.GetMinRealAverage(311); |
| | | frameTemperaturePic.X = Application.GetMinRealAverage(518);
|
| | | frameTemperaturePic.Y = Application.GetRealHeight(242);
|
| | | frameTemperaturePic.Width = Application.GetMinRealAverage(311);
|
| | | frameTemperaturePic.Height = Application.GetMinRealAverage(351); |
| | | frameTemperaturePic.BackgroundImagePath = "PM2.5Sensor/TemperaturePic.png"; |
| | | frameWhiteBack.AddChidren(frameTemperaturePic); |
| | | //温度文本 |
| | | var btnTemperatureText = new NormalViewControl(311, 49, true); |
| | | var btnTemperatureText = new NormalViewControl(311, 49, true);
|
| | | btnTemperatureText.Y = Application.GetRealHeight(45); |
| | | btnTemperatureText.TextID = R.MyInternationalizationString.Temperature; |
| | | btnTemperatureText.TextSize = 12; |
| | |
| | | btnTemperatureText.TextAlignment = TextAlignment.Center; |
| | | frameTemperaturePic.AddChidren(btnTemperatureText); |
| | | |
| | | //温度数据(第2个,listControl【1】) |
| | | var btnTemperatureStatus = new NormalViewControl(193, 92, true); |
| | | btnTemperatureStatus.Y = Application.GetRealHeight(181); |
| | | // 温度文本容器 |
| | | var frameTemperatureTextFrameLayout = new FrameLayout(); |
| | | frameTemperatureTextFrameLayout.Gravity = Gravity.CenterHorizontal; |
| | | frameTemperatureTextFrameLayout.Y = Application.GetRealHeight(113); |
| | | frameTemperatureTextFrameLayout.Height = Application.GetRealHeight(160); |
| | | frameTemperaturePic.AddChidren(frameTemperatureTextFrameLayout); |
| | | |
| | | //温度数据 |
| | | var btnTemperatureStatus = new NormalViewControl(193, 160, true);
|
| | | btnTemperatureStatus.Text = "20"; |
| | | btnTemperatureStatus.TextSize = 30; |
| | | btnTemperatureStatus.TextColor = ZigbeeColor.Current.XMWhite; |
| | | btnTemperatureStatus.TextAlignment = TextAlignment.CenterRight; |
| | | frameTemperaturePic.AddChidren(btnTemperatureStatus); |
| | | this.listControl.Add(btnTemperatureStatus); |
| | | btnTemperatureStatus.TextAlignment = TextAlignment.BottomRight; |
| | | frameTemperatureTextFrameLayout.AddChidren(btnTemperatureStatus); |
| | | |
| | | //温度单位 |
| | | var btnTemperatureUnit = new NormalViewControl(40 + 81, 40, true); |
| | | btnTemperatureUnit.Y = Application.GetRealHeight(181 + 46); |
| | | btnTemperatureUnit.X = Application.GetRealWidth(180); |
| | | var btnTemperatureUnit = new NormalViewControl(50, 140, true);
|
| | | btnTemperatureUnit.X = btnTemperatureStatus.Right; |
| | | btnTemperatureUnit.Text = "℃"; |
| | | btnTemperatureUnit.TextSize = 14; |
| | | btnTemperatureUnit.TextColor = ZigbeeColor.Current.XMWhite; |
| | | btnTemperatureUnit.TextAlignment = TextAlignment.CenterLeft; |
| | | frameTemperaturePic.AddChidren(btnTemperatureUnit); |
| | | btnTemperatureUnit.TextAlignment = TextAlignment.BottomLeft; |
| | | frameTemperatureTextFrameLayout.AddChidren(btnTemperatureUnit); |
| | | |
| | | //PM2.5传感器的PM2.5容器 |
| | | var framePmPic = new FrameLayout(); |
| | | framePmPic.X = Application.GetMinRealAverage(138); |
| | | framePmPic.Y = Application.GetRealHeight(662); |
| | | framePmPic.Width = Application.GetMinRealAverage(311); |
| | | framePmPic.X = Application.GetMinRealAverage(138);
|
| | | framePmPic.Y = Application.GetRealHeight(662);
|
| | | framePmPic.Width = Application.GetMinRealAverage(311);
|
| | | framePmPic.Height = Application.GetMinRealAverage(351); |
| | | framePmPic.BackgroundImagePath = "PM2.5Sensor/PmPic.png"; |
| | | frameWhiteBack.AddChidren(framePmPic); |
| | | //PM2.5文本 |
| | | var btnPmText = new NormalViewControl(311, 49, true); |
| | | var btnPmText = new NormalViewControl(311, 49, true);
|
| | | btnPmText.Y = Application.GetRealHeight(45); |
| | | btnPmText.Text = "PM2.5"; |
| | | btnPmText.TextSize = 12; |
| | |
| | | btnPmText.TextAlignment = TextAlignment.Center; |
| | | framePmPic.AddChidren(btnPmText); |
| | | |
| | | //PM2.5数据(第3个,listControl【2】) |
| | | var btnPmStatus = new NormalViewControl(162, 92, true); |
| | | btnPmStatus.Y = Application.GetRealHeight(181); |
| | | // PM2.5文本容器 |
| | | var framePmTextFrameLayout = new FrameLayout(); |
| | | framePmTextFrameLayout.Y = Application.GetRealHeight(113); |
| | | framePmTextFrameLayout.Gravity = Gravity.CenterHorizontal; |
| | | framePmTextFrameLayout.Height = Application.GetRealHeight(160); |
| | | framePmPic.AddChidren(framePmTextFrameLayout); |
| | | |
| | | //PM2.5数据 |
| | | var btnPmStatus = new NormalViewControl(162, 160, true);
|
| | | btnPmStatus.Text = "155"; |
| | | btnPmStatus.TextSize = 30; |
| | | btnPmStatus.TextColor = ZigbeeColor.Current.XMWhite; |
| | | btnPmStatus.TextAlignment = TextAlignment.CenterRight; |
| | | framePmPic.AddChidren(btnPmStatus); |
| | | this.listControl.Add(btnPmStatus); |
| | | btnPmStatus.TextAlignment = TextAlignment.BottomRight; |
| | | framePmTextFrameLayout.AddChidren(btnPmStatus); |
| | | |
| | | //PM2.5单位 (第4个,listControl【3】) |
| | | var btnPmUnit = new NormalViewControl(120 + 26, 43, true); |
| | | btnPmUnit.Y = Application.GetRealHeight(181 + 46); |
| | | btnPmUnit.X = Application.GetRealWidth(153); |
| | | //PM2.5单位 (第4个,listControl【3】) |
| | | var btnPmUnit = new NormalViewControl(144, 148, true);
|
| | | btnPmUnit.X = btnPmStatus.Right; |
| | | btnPmUnit.Text = "μg/m³"; |
| | | btnPmUnit.TextSize = 14; |
| | | btnPmUnit.TextColor = ZigbeeColor.Current.XMWhite; |
| | | btnPmUnit.TextAlignment = TextAlignment.CenterLeft; |
| | | framePmPic.AddChidren(btnPmUnit); |
| | | this.listControl.Add(btnPmUnit); |
| | | btnPmUnit.TextAlignment = TextAlignment.BottomLeft; |
| | | framePmTextFrameLayout.AddChidren(btnPmUnit); |
| | | |
| | | this.listControl.Add(btnHumidityStatus);//(第1个,listControl【0】) |
| | | this.listControl.Add(btnTemperatureStatus);//(第2个,listControl【1】) |
| | | this.listControl.Add(btnPmStatus);//(第3个,listControl【2】) |
| | | this.listControl.Add(btnPmUnit);//(第4个,listControl【3】) |
| | | this.listControl.Add(btnHumidityUnit);//(第5个,listControl【4】) |
| | | this.listControl.Add(btnTemperatureUnit);//(第6个,listControl【5】) |
| | | this.listFrameLayout.Add(frameHumidityTextFrameLayout);//(第1个,listControl【0】) |
| | | this.listFrameLayout.Add(frameTemperatureTextFrameLayout);//(第2个,listControl【1】) |
| | | this.listFrameLayout.Add(framePmTextFrameLayout);//(第3个,listControl【2】) |
| | | } |
| | | #endregion |
| | | |
| | |
| | | /// <param name="comandDiv">命令区分</param>
|
| | | /// <param name="report">上报数据</param>
|
| | | /// <returns></returns>
|
| | | public override bool CheckResponeResultStatu(ReceiveComandDiv comandDiv, CommonDevice report) |
| | | { |
| | | if (comandDiv == ReceiveComandDiv.A设备属性上报) |
| | | { |
| | | if (report.DeviceStatusReport.CluterID == 1026) |
| | | { |
| | | var attriButeList = report.DeviceStatusReport.AttriBute; |
| | | foreach (var attList in attriButeList) |
| | | { |
| | | if (attList.AttributeId == 0) |
| | | public override bool CheckResponeResultStatu(ReceiveComandDiv comandDiv, CommonDevice report)
|
| | | {
|
| | | if (comandDiv == ReceiveComandDiv.A设备属性上报)
|
| | | {
|
| | | if (report.DeviceStatusReport.CluterID == 1026)
|
| | | {
|
| | | var attriButeList = report.DeviceStatusReport.AttriBute;
|
| | | foreach (var attList in attriButeList)
|
| | | {
|
| | | if (attList.AttributeId == 0)
|
| | | { |
| | | HdlThreadLogic.Current.RunMain(() => |
| | | HdlThreadLogic.Current.RunMain(() =>
|
| | | { |
| | | UpdateStatus(); |
| | | }); |
| | | |
| | | //已经接收到网关的反馈 |
| | | return true; |
| | | return true;
|
| | | } |
| | | } |
| | | } |
| | | if (report.DeviceStatusReport.CluterID == 1029) |
| | | { |
| | | var attriButeList = report.DeviceStatusReport.AttriBute; |
| | | foreach (var attList in attriButeList) |
| | | { |
| | | if (attList.AttributeId == 0) |
| | | }
|
| | | }
|
| | | if (report.DeviceStatusReport.CluterID == 1029)
|
| | | {
|
| | | var attriButeList = report.DeviceStatusReport.AttriBute;
|
| | | foreach (var attList in attriButeList)
|
| | | {
|
| | | if (attList.AttributeId == 0)
|
| | | { |
| | | HdlThreadLogic.Current.RunMain(() => |
| | | HdlThreadLogic.Current.RunMain(() =>
|
| | | { |
| | | UpdateStatus(); |
| | | }); |
| | | |
| | | //已经接收到网关的反馈 |
| | | return true; |
| | | return true;
|
| | | } |
| | | } |
| | | } |
| | | if (report.DeviceStatusReport.CluterID == 1066) |
| | | { |
| | | var attriButeList = report.DeviceStatusReport.AttriBute; |
| | | foreach (var attList in attriButeList) |
| | | { |
| | | if (attList.AttributeId == 0) |
| | | }
|
| | | }
|
| | | if (report.DeviceStatusReport.CluterID == 1066)
|
| | | {
|
| | | var attriButeList = report.DeviceStatusReport.AttriBute;
|
| | | foreach (var attList in attriButeList)
|
| | | {
|
| | | if (attList.AttributeId == 0)
|
| | | { |
| | | HdlThreadLogic.Current.RunMain(() => |
| | | HdlThreadLogic.Current.RunMain(() =>
|
| | | { |
| | | UpdateStatus(); |
| | | }); |
| | | |
| | | //已经接收到网关的反馈 |
| | | return true; |
| | | return true;
|
| | | } |
| | | } |
| | | } |
| | | } |
| | | return false; |
| | | }
|
| | | }
|
| | | }
|
| | | return false;
|
| | | } |
| | | #endregion |
| | | |
| | |
| | | private void UpdateStatus() |
| | | { |
| | | //设置状态文字 |
| | | this.listControl[0].Text = pMSensor.currentTemperature.ToString(); |
| | | this.listControl[1].Text = pMSensor.currentHumidity.ToString(); |
| | | this.listControl[0].Text = pMSensor.currentHumidity.ToString(); |
| | | this.listControl[1].Text = pMSensor.currentTemperature.ToString(); |
| | | this.listControl[2].Text = pMSensor.currentPmData.ToString(); |
| | | //设置状态文字 |
| | | var curText = Language.StringByID(R.MyInternationalizationString.AirQuality) + QuailityType(); |
| | | this.SetStatuText(curText); |
| | | this.listControl[0].Width = this.listControl[0].GetRealWidthByText(); |
| | | this.listControl[4].X = this.listControl[0].Right; |
| | | this.listControl[1].Width = this.listControl[1].GetRealWidthByText(); |
| | | this.listControl[5].X = this.listControl[1].Right; |
| | | this.listControl[2].Width = this.listControl[2].GetRealWidthByText(); |
| | | this.listControl[3].X = this.listControl[2].Right; |
| | | this.listControl[3].Width = this.listControl[3].GetRealWidthByText(); |
| | | this.listFrameLayout[0].Width = this.listControl[0].Width + this.listControl[4].Width; |
| | | this.listFrameLayout[1].Width = this.listControl[1].Width + this.listControl[5].Width; |
| | | this.listFrameLayout[2].Width = this.listControl[2].Width + this.listControl[3].Width; |
| | | this.listFrameLayout[0].Gravity = Gravity.CenterHorizontal; |
| | | this.listFrameLayout[1].Gravity = Gravity.CenterHorizontal; |
| | | this.listFrameLayout[2].Gravity = Gravity.CenterHorizontal; |
| | | } |
| | | |
| | | /// <summary> |
| | |
| | | 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); |
| | | curQuality = Language.StringByID(R.MyInternationalizationString.GoodAirQuality); |
| | | } |
| | | 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); |
| | | } |
| | | curQuality = Language.StringByID(R.MyInternationalizationString.LightPollution); |
| | | } |
| | | 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); |
| | | curQuality = Language.StringByID(R.MyInternationalizationString.Moderatelyolluted); |
| | | } |
| | | 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); |
| | | curQuality = Language.StringByID(R.MyInternationalizationString.HeavyPollution); |
| | | } |
| | | 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); |
| | | curQuality = Language.StringByID(R.MyInternationalizationString.SeriousPollution); |
| | | } |
| | | else |
| | | { |
| | | curQuality = ""; |
| | | this.listControl[2].Width = Application.GetRealWidth(162); |
| | | this.listControl[3].X = Application.GetRealWidth(153); |
| | | } |
| | | //设置状态文字 |
| | | return curQuality; |
| | | } |
| | | #endregion |
| | | |
| | | |
| | | |
| | | } |
| | | } |