| | |
| | | |
| | | namespace Shared.Phone.MainPage.ControlForm |
| | | { |
| | | /// <summary> |
| | | /// 空气质量传感器类型的深度卡片界面 |
| | | /// </summary> |
| | | public class DeviceAirQualitySensorDetailCardForm : DeviceDetailCardCommonForm |
| | | { |
| | | #region ■ 变量声明___________________________ |
| | | /// <summary> |
| | | /// 界面上可以操作的控件 |
| | | /// listControl【0】:btnHumidityStatus |
| | | ///listControl【1】: btnTemperatureStatus |
| | | ///listControl【2】: btnPmStatus |
| | | ///listControl【3】: btnPmUnit |
| | | ///listControl【4】: btnHumidityUnit |
| | | ///listControl【5】: btnTemperatureUnit |
| | | ///listControl【6】: btnCo2Status |
| | | ///listControl【7】: btnCo2Unit |
| | | /// 空气质量传感器类型的深度卡片界面 |
| | | /// </summary> |
| | | private List<ButtonBase> listControl = new List<ButtonBase>(); |
| | | /// <summary> |
| | | /// 界面上可以操作的控件 |
| | | /// listFrameLayout【0】:frameHumidityTextFrameLayout |
| | | ////listFrameLayout【0】:frameTemperatureTextFrameLayout |
| | | ///listFrameLayout【0】:framePmTextFrameLayout |
| | | ///listFrameLayout【0】:frameCo2TextFrameLayout |
| | | /// </summary> |
| | | private List<FrameLayout> listFrameLayout = new List<FrameLayout>(); |
| | | /// <summary> |
| | | /// 控件 |
| | | /// </summary> |
| | | private TemperatureSensor aqSensor = null; |
| | | /// <summary> |
| | | /// 状态控件 |
| | | /// </summary> |
| | | private NormalViewControl btnStatu = null; |
| | | /// <summary> |
| | | /// 当前的文本 |
| | | /// </summary> |
| | | private string CurrentText = string.Empty; |
| | | /// <summary> |
| | | /// 灯 |
| | | /// </summary> |
| | | private Button btnLight = null; |
| | | /// <summary> |
| | | /// 设置灯 |
| | | /// </summary> |
| | | NormalViewControl btnSetLight = null; |
| | | NormalViewControl btnSetLightLine = null; |
| | | /// <summary> |
| | | /// 查看历史记录 |
| | | /// </summary> |
| | | NormalViewControl btnHistoryText = null; |
| | | /// <summary> |
| | | /// 设备名称控件 |
| | | /// </summary> |
| | | private NormalViewControl btnDeviceName = null; |
| | | |
| | | #endregion |
| | | |
| | | #region ■ 初始化_____________________________ |
| | | public override void InitMiddleFrameAfter(FrameLayout frameWhiteBack) |
| | | public class DeviceAirQualitySensorDetailCardForm : DeviceDetailCardCommonForm |
| | | { |
| | | //左滑不能 |
| | | this.ScrollEnabled = true; |
| | | this.aqSensor = (TemperatureSensor)this.device; |
| | | //每次进入这个界面,都读一下LED状态态。因为这个开关状态总是没收到,而其CO2,PM2.5,温湿度数据上报导致外面都检查状态标记为true |
| | | aqSensor.SendSwitchStatuComand(); |
| | | //先清空 |
| | | this.listControl = new List<ButtonBase>(); |
| | | InitAirQualitySensorControl(frameWhiteBack); |
| | | UpdateStatus(); |
| | | } |
| | | #region ■ 变量声明___________________________ |
| | | /// <summary> |
| | | /// 界面上可以操作的控件 |
| | | /// listControl【0】:btnHumidityStatus |
| | | ///listControl【1】: btnTemperatureStatus |
| | | ///listControl【2】: btnPmStatus |
| | | ///listControl【3】: btnPmUnit |
| | | ///listControl【4】: btnHumidityUnit |
| | | ///listControl【5】: btnTemperatureUnit |
| | | ///listControl【6】: btnCo2Status |
| | | ///listControl【7】: btnCo2Unit |
| | | /// </summary> |
| | | private List<ButtonBase> listControl = new List<ButtonBase>(); |
| | | /// <summary> |
| | | /// 界面上可以操作的控件 |
| | | /// listFrameLayout【0】:frameHumidityTextFrameLayout |
| | | ////listFrameLayout【0】:frameTemperatureTextFrameLayout |
| | | ///listFrameLayout【0】:framePmTextFrameLayout |
| | | ///listFrameLayout【0】:frameCo2TextFrameLayout |
| | | /// </summary> |
| | | private List<FrameLayout> listFrameLayout = new List<FrameLayout>(); |
| | | /// <summary> |
| | | /// 控件 |
| | | /// </summary> |
| | | private TemperatureSensor aqSensor = null; |
| | | /// <summary> |
| | | /// 状态控件 |
| | | /// </summary> |
| | | private NormalViewControl btnStatu = null; |
| | | /// <summary> |
| | | /// 当前的文本 |
| | | /// </summary> |
| | | private string CurrentText = string.Empty; |
| | | /// <summary> |
| | | /// 灯 |
| | | /// </summary> |
| | | private Button btnLight = null; |
| | | /// <summary> |
| | | /// 设置灯 |
| | | /// </summary> |
| | | NormalViewControl btnSetLight = null; |
| | | NormalViewControl btnSetLightLine = null; |
| | | /// <summary> |
| | | /// 查看历史记录 |
| | | /// </summary> |
| | | NormalViewControl btnHistoryText = null; |
| | | /// <summary> |
| | | /// 设备名称控件 |
| | | /// </summary> |
| | | private NormalViewControl btnDeviceName = null; |
| | | |
| | | /// <summary> |
| | | /// 初始化空气质量传感器控件 |
| | | /// </summary> |
| | | /// <param name="frameWhiteBack"></param> |
| | | private void InitAirQualitySensorControl(FrameLayout frameWhiteBack) |
| | | { |
| | | DeviceDataUI(frameWhiteBack); |
| | | //灯 |
| | | btnLight = new Button() |
| | | { |
| | | Width = Application.GetMinRealAverage(144), |
| | | Height = Application.GetMinRealAverage(144), |
| | | Y = Application.GetRealHeight(1031 - 5), |
| | | Gravity = Gravity.CenterHorizontal, |
| | | UnSelectedImagePath = "AirQualitySensor/light.png", |
| | | SelectedImagePath = "AirQualitySensor/lightOn.png", |
| | | }; |
| | | frameWhiteBack.AddChidren(btnLight); |
| | | #endregion |
| | | |
| | | //设置LED灯 |
| | | btnSetLight = new NormalViewControl(175, 49, true); |
| | | btnSetLight.Y = Application.GetRealHeight(1270 - 35); |
| | | btnSetLight.TextID = R.MyInternationalizationString.SetAirQualitySensorLight; |
| | | btnSetLight.TextSize = 12; |
| | | btnSetLight.TextColor = ZigbeeColor.Current.XMGray3; |
| | | btnSetLight.Enable = false; |
| | | btnSetLight.TextAlignment = TextAlignment.Center; |
| | | btnSetLight.Gravity = Gravity.CenterHorizontal; |
| | | frameWhiteBack.AddChidren(btnSetLight); |
| | | //线 |
| | | btnSetLightLine = new NormalViewControl(175, true); |
| | | btnSetLightLine.Y = Application.GetRealHeight(1270 + 5); |
| | | btnSetLightLine.Height = 2; |
| | | btnSetLightLine.BackgroundColor = ZigbeeColor.Current.XMGray3; |
| | | btnSetLightLine.Gravity = Gravity.CenterHorizontal; |
| | | frameWhiteBack.AddChidren(btnSetLightLine); |
| | | |
| | | //查看历史记录 |
| | | btnHistoryText = new NormalViewControl(303, 49, true); |
| | | btnHistoryText.Y = btnSetLightLine.Y + Application.GetRealHeight(50); |
| | | btnHistoryText.TextID = R.MyInternationalizationString.CheckAirQualitySensorHistory; |
| | | btnHistoryText.TextSize = 12; |
| | | btnHistoryText.TextColor = ZigbeeColor.Current.XMOrange; |
| | | btnHistoryText.TextAlignment = TextAlignment.Center; |
| | | btnHistoryText.Gravity = Gravity.CenterHorizontal; |
| | | frameWhiteBack.AddChidren(btnHistoryText); |
| | | //线 |
| | | var btnHistoryTextLine = new NormalViewControl(209, true); |
| | | btnHistoryTextLine.Height = 2; |
| | | btnHistoryTextLine.Y = btnHistoryText.Y + Application.GetRealHeight(41); |
| | | btnHistoryTextLine.BackgroundColor = ZigbeeColor.Current.XMOrange; |
| | | btnHistoryTextLine.Gravity = Gravity.CenterHorizontal; |
| | | frameWhiteBack.AddChidren(btnHistoryTextLine); |
| | | |
| | | //设置初始状态 |
| | | if (((TemperatureSensor)this.device).OnOffStatus == 1) |
| | | { |
| | | btnLight.IsSelected = true; |
| | | btnSetLight.TextColor = ZigbeeColor.Current.XMOrange; |
| | | btnSetLightLine.BackgroundColor = ZigbeeColor.Current.XMOrange; |
| | | btnSetLight.Enable = true; |
| | | } |
| | | |
| | | btnLight.MouseUpEventHandler += (sender, e) => |
| | | { |
| | | //发送开关命令 |
| | | this.SetSwitchCommand(!btnLight.IsSelected); |
| | | }; |
| | | btnSetLight.MouseUpEventHandler += (sender, e) => |
| | | { |
| | | //设置灯事件 |
| | | //var AirQualitySensorLedBindTime = new Shared.Phone.UserCenter.DeviceBind.AirQualitySensorLedBindTime(aqSensor); |
| | | //Shared.Phone.UserView.HomePage.Instance.AddChidren(AirQualitySensorLedBindTime); |
| | | //Shared.Phone.UserView.HomePage.Instance.PageIndex += 1; |
| | | //AirQualitySensorLedBindTime.Show(); |
| | | }; |
| | | btnHistoryText.MouseUpEventHandler += (sender, e) => |
| | | { |
| | | //查看历史记录事件 |
| | | }; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 空气质量传感器带有属性状态布局 |
| | | /// </summary> |
| | | /// <param name="frameWhiteBack"></param> |
| | | private void DeviceDataUI(FrameLayout frameWhiteBack) |
| | | { |
| | | //湿度容器 |
| | | var frameHumidityPic = new FrameLayout(); |
| | | frameHumidityPic.X = Application.GetRealWidth(121); |
| | | frameHumidityPic.Y = Application.GetRealHeight(213); |
| | | frameHumidityPic.Width = Application.GetMinRealAverage(311); |
| | | frameHumidityPic.Height = Application.GetMinRealAverage(351); |
| | | frameHumidityPic.BackgroundImagePath = "PM2.5Sensor/HumidityPic.png"; |
| | | frameWhiteBack.AddChidren(frameHumidityPic); |
| | | |
| | | //湿度文本 |
| | | var btnHumidityText = new NormalViewControl(338, 49, true); |
| | | btnHumidityText.Y = Application.GetRealHeight(45); |
| | | btnHumidityText.TextID = R.MyInternationalizationString.Humidity; |
| | | btnHumidityText.TextSize = 12; |
| | | btnHumidityText.TextColor = ZigbeeColor.Current.XMWhite; |
| | | btnHumidityText.TextAlignment = TextAlignment.Center; |
| | | frameHumidityPic.AddChidren(btnHumidityText); |
| | | |
| | | //湿度文本容器 |
| | | 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.BottomRight; |
| | | frameHumidityTextFrameLayout.AddChidren(btnHumidityStatus); |
| | | |
| | | //湿度单位 |
| | | var btnHumidityUnit = new NormalViewControl(50, 140, true); |
| | | btnHumidityUnit.X = btnHumidityStatus.Right; |
| | | btnHumidityUnit.Text = "%"; |
| | | btnHumidityUnit.TextSize = 14; |
| | | btnHumidityUnit.TextColor = ZigbeeColor.Current.XMWhite; |
| | | btnHumidityUnit.TextAlignment = TextAlignment.BottomLeft; |
| | | frameHumidityTextFrameLayout.AddChidren(btnHumidityUnit); |
| | | |
| | | //温度容器 |
| | | var frameTemperaturePic = new FrameLayout(); |
| | | frameTemperaturePic.X = Application.GetRealWidth(518); |
| | | frameTemperaturePic.Y = frameHumidityPic.Y; |
| | | frameTemperaturePic.Width = Application.GetMinRealAverage(321); |
| | | frameTemperaturePic.BackgroundColor = 0xffff0000; |
| | | frameTemperaturePic.Height = Application.GetMinRealAverage(351); |
| | | frameTemperaturePic.BackgroundImagePath = "PM2.5Sensor/TemperaturePic.png"; |
| | | frameWhiteBack.AddChidren(frameTemperaturePic); |
| | | |
| | | //温度文本 |
| | | var btnTemperatureText = new NormalViewControl(338, 49, true); |
| | | btnTemperatureText.Y = Application.GetRealHeight(45); |
| | | btnTemperatureText.TextID = R.MyInternationalizationString.Temperature; |
| | | btnTemperatureText.TextSize = 12; |
| | | btnTemperatureText.TextColor = ZigbeeColor.Current.XMWhite; |
| | | btnTemperatureText.TextAlignment = TextAlignment.Center; |
| | | frameTemperaturePic.AddChidren(btnTemperatureText); |
| | | |
| | | // 温度文本容器 |
| | | 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.BottomRight; |
| | | frameTemperatureTextFrameLayout.AddChidren(btnTemperatureStatus); |
| | | |
| | | //温度单位 |
| | | var btnTemperatureUnit = new NormalViewControl(50, 140, true); |
| | | btnTemperatureUnit.X = btnTemperatureStatus.Right; |
| | | btnTemperatureUnit.Text = "℃"; |
| | | btnTemperatureUnit.TextSize = 14; |
| | | btnTemperatureUnit.TextColor = ZigbeeColor.Current.XMWhite; |
| | | btnTemperatureUnit.TextAlignment = TextAlignment.BottomLeft; |
| | | frameTemperatureTextFrameLayout.AddChidren(btnTemperatureUnit); |
| | | |
| | | //PM2.5容器 |
| | | var framePmPic = new FrameLayout(); |
| | | framePmPic.X = Application.GetRealWidth(120); |
| | | framePmPic.Y = Application.GetRealHeight(634); |
| | | 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(338, 49, true); |
| | | btnPmText.Y = Application.GetRealHeight(45); |
| | | btnPmText.Text = "PM2.5"; |
| | | btnPmText.TextSize = 12; |
| | | btnPmText.TextColor = ZigbeeColor.Current.XMWhite; |
| | | btnPmText.TextAlignment = TextAlignment.Center; |
| | | framePmPic.AddChidren(btnPmText); |
| | | |
| | | // 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.BottomRight; |
| | | framePmTextFrameLayout.AddChidren(btnPmStatus); |
| | | |
| | | //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.BottomLeft; |
| | | framePmTextFrameLayout.AddChidren(btnPmUnit); |
| | | |
| | | //Co2容器 |
| | | var frameCo2Pic = new FrameLayout(); |
| | | frameCo2Pic.X = Application.GetRealWidth(518); |
| | | frameCo2Pic.Y = framePmPic.Y; |
| | | frameCo2Pic.Width = Application.GetMinRealAverage(311); |
| | | frameCo2Pic.Height = Application.GetMinRealAverage(351); |
| | | frameCo2Pic.BackgroundImagePath = "AirQualitySensor/CO2Pic.png"; |
| | | frameWhiteBack.AddChidren(frameCo2Pic); |
| | | //Co2文本 |
| | | var btnCo2Text = new NormalViewControl(338, 49, true); |
| | | btnCo2Text.Y = Application.GetRealHeight(45); |
| | | btnCo2Text.Text = "CO₂"; |
| | | btnCo2Text.TextSize = 12; |
| | | btnCo2Text.TextColor = ZigbeeColor.Current.XMWhite; |
| | | btnCo2Text.TextAlignment = TextAlignment.Center; |
| | | frameCo2Pic.AddChidren(btnCo2Text); |
| | | |
| | | // Co2文本容器 |
| | | var frameCo2TextFrameLayout = new FrameLayout(); |
| | | frameCo2TextFrameLayout.Y = Application.GetRealHeight(113); |
| | | frameCo2TextFrameLayout.Gravity = Gravity.CenterHorizontal; |
| | | frameCo2TextFrameLayout.Height = Application.GetRealHeight(160); |
| | | frameCo2Pic.AddChidren(frameCo2TextFrameLayout); |
| | | |
| | | //Co2数据 |
| | | var btnCo2Status = new NormalViewControl(162, 160, true); |
| | | btnCo2Status.Text = "155"; |
| | | btnCo2Status.TextSize = 30; |
| | | btnCo2Status.TextColor = ZigbeeColor.Current.XMWhite; |
| | | btnCo2Status.TextAlignment = TextAlignment.BottomRight; |
| | | frameCo2TextFrameLayout.AddChidren(btnCo2Status); |
| | | |
| | | //Co2单位 (第4个,listControl【4】) |
| | | var btnCo2Unit = new NormalViewControl(112, 148, true); |
| | | btnCo2Unit.X = btnPmStatus.Right; |
| | | btnCo2Unit.Text = "ppm³"; |
| | | btnCo2Unit.TextSize = 14; |
| | | btnCo2Unit.TextColor = ZigbeeColor.Current.XMWhite; |
| | | btnCo2Unit.TextAlignment = TextAlignment.BottomLeft; |
| | | frameCo2TextFrameLayout.AddChidren(btnCo2Unit); |
| | | |
| | | 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.listControl.Add(btnCo2Status);//(第7个,listControl【6】) |
| | | this.listControl.Add(btnCo2Unit);//(第8个,listControl【7】) |
| | | |
| | | this.listFrameLayout.Add(frameHumidityTextFrameLayout);//(第1个,listFrameLayout【0】) |
| | | this.listFrameLayout.Add(frameTemperatureTextFrameLayout);//(第2个,listFrameLayout【1】) |
| | | this.listFrameLayout.Add(framePmTextFrameLayout);//(第3个,listFrameLayout【2】) |
| | | this.listFrameLayout.Add(frameCo2TextFrameLayout);//(第4个,listFrameLayout【3】) |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | #region ■ 发送开关命令_______________________ |
| | | /// <summary> |
| | | /// 发送开关命令 |
| | | /// </summary> |
| | | /// <param name="isOpen">发送状态</param> |
| | | private void SetSwitchCommand(bool isOpen) |
| | | { |
| | | this.StartCheckResponeResult(listControl, (result) => |
| | | { |
| | | //接收到网关回复 |
| | | if (result == true) |
| | | #region ■ 初始化_____________________________ |
| | | public override void InitMiddleFrameAfter(FrameLayout frameWhiteBack) |
| | | { |
| | | HdlThreadLogic.Current.RunMain(() => |
| | | { |
| | | bool statu = ((TemperatureSensor)this.device).OnOffStatus == 1; |
| | | this.RefreshSwitchStatu(statu); |
| | | }); |
| | | } |
| | | }); |
| | | if (isOpen == true) |
| | | { |
| | | aqSensor.SwitchControl(1); |
| | | } |
| | | else |
| | | { |
| | | aqSensor.SwitchControl(0); |
| | | } |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | #region ■ 刷新开关状态_______________________ |
| | | |
| | | /// <summary> |
| | | /// 刷新开关状态 |
| | | /// </summary> |
| | | /// <param name="isOpen">打开状态</param> |
| | | private void RefreshSwitchStatu(bool isOpen) |
| | | { |
| | | btnLight.IsSelected = isOpen; |
| | | if (isOpen) |
| | | { |
| | | btnSetLight.TextColor = ZigbeeColor.Current.XMOrange; |
| | | btnSetLightLine.BackgroundColor = ZigbeeColor.Current.XMOrange; |
| | | btnSetLight.Enable = true; |
| | | } |
| | | else |
| | | { |
| | | btnSetLight.TextColor = ZigbeeColor.Current.XMGray3; |
| | | btnSetLightLine.BackgroundColor = ZigbeeColor.Current.XMGray3; |
| | | btnSetLight.Enable = false; |
| | | } |
| | | } |
| | | |
| | | #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设备属性上报) |
| | | { |
| | | if (report.DeviceStatusReport.CluterID == 6) |
| | | { |
| | | HdlThreadLogic.Current.RunMain(() => |
| | | { |
| | | //变更卡片状态 |
| | | this.RefreshSwitchStatu(((TemperatureSensor)this.device).OnOffStatus == 1); |
| | | }); |
| | | return true; |
| | | //左滑不能 |
| | | this.ScrollEnabled = true; |
| | | this.aqSensor = (TemperatureSensor)this.device; |
| | | //每次进入这个界面,都读一下LED状态态。因为这个开关状态总是没收到,而其CO2,PM2.5,温湿度数据上报导致外面都检查状态标记为true |
| | | aqSensor.SendSwitchStatuComand(); |
| | | //先清空 |
| | | this.listControl = new List<ButtonBase>(); |
| | | InitAirQualitySensorControl(frameWhiteBack); |
| | | UpdateStatus(); |
| | | } |
| | | |
| | | if (report.DeviceStatusReport.CluterID == 1026) |
| | | /// <summary> |
| | | /// 初始化空气质量传感器控件 |
| | | /// </summary> |
| | | /// <param name="frameWhiteBack"></param> |
| | | private void InitAirQualitySensorControl(FrameLayout frameWhiteBack) |
| | | { |
| | | var attriButeList = report.DeviceStatusReport.AttriBute; |
| | | foreach (var attList in attriButeList) |
| | | { |
| | | if (attList.AttributeId == 0) |
| | | DeviceDataUI(frameWhiteBack); |
| | | //灯 |
| | | btnLight = new Button() |
| | | { |
| | | HdlThreadLogic.Current.RunMain(() => |
| | | { |
| | | UpdateStatus(); |
| | | }); |
| | | Width = Application.GetMinRealAverage(144), |
| | | Height = Application.GetMinRealAverage(144), |
| | | Y = Application.GetRealHeight(1031 - 5), |
| | | Gravity = Gravity.CenterHorizontal, |
| | | UnSelectedImagePath = "AirQualitySensor/light.png", |
| | | SelectedImagePath = "AirQualitySensor/lightOn.png", |
| | | }; |
| | | frameWhiteBack.AddChidren(btnLight); |
| | | |
| | | //已经接收到网关的反馈 |
| | | return true; |
| | | } |
| | | } |
| | | } |
| | | if (report.DeviceStatusReport.CluterID == 1029) |
| | | { |
| | | var attriButeList = report.DeviceStatusReport.AttriBute; |
| | | foreach (var attList in attriButeList) |
| | | { |
| | | if (attList.AttributeId == 0) |
| | | //设置LED灯 |
| | | btnSetLight = new NormalViewControl(175, 49, true); |
| | | btnSetLight.Y = Application.GetRealHeight(1270 - 35); |
| | | btnSetLight.TextID = R.MyInternationalizationString.SetAirQualitySensorLight; |
| | | btnSetLight.TextSize = 12; |
| | | btnSetLight.TextColor = ZigbeeColor.Current.XMGray3; |
| | | btnSetLight.Enable = false; |
| | | btnSetLight.TextAlignment = TextAlignment.Center; |
| | | btnSetLight.Gravity = Gravity.CenterHorizontal; |
| | | frameWhiteBack.AddChidren(btnSetLight); |
| | | //线 |
| | | btnSetLightLine = new NormalViewControl(175, true); |
| | | btnSetLightLine.Y = Application.GetRealHeight(1270 + 5); |
| | | btnSetLightLine.Height = 2; |
| | | btnSetLightLine.BackgroundColor = ZigbeeColor.Current.XMGray3; |
| | | btnSetLightLine.Gravity = Gravity.CenterHorizontal; |
| | | frameWhiteBack.AddChidren(btnSetLightLine); |
| | | |
| | | //查看历史记录 |
| | | btnHistoryText = new NormalViewControl(303, 49, true); |
| | | btnHistoryText.Y = btnSetLightLine.Y + Application.GetRealHeight(50); |
| | | btnHistoryText.TextID = R.MyInternationalizationString.CheckAirQualitySensorHistory; |
| | | btnHistoryText.TextSize = 12; |
| | | btnHistoryText.TextColor = ZigbeeColor.Current.XMOrange; |
| | | btnHistoryText.TextAlignment = TextAlignment.Center; |
| | | btnHistoryText.Gravity = Gravity.CenterHorizontal; |
| | | frameWhiteBack.AddChidren(btnHistoryText); |
| | | //线 |
| | | var btnHistoryTextLine = new NormalViewControl(209, true); |
| | | btnHistoryTextLine.Height = 2; |
| | | btnHistoryTextLine.Y = btnHistoryText.Y + Application.GetRealHeight(41); |
| | | btnHistoryTextLine.BackgroundColor = ZigbeeColor.Current.XMOrange; |
| | | btnHistoryTextLine.Gravity = Gravity.CenterHorizontal; |
| | | frameWhiteBack.AddChidren(btnHistoryTextLine); |
| | | |
| | | //设置初始状态 |
| | | if (((TemperatureSensor)this.device).OnOffStatus == 1) |
| | | { |
| | | HdlThreadLogic.Current.RunMain(() => |
| | | { |
| | | UpdateStatus(); |
| | | }); |
| | | |
| | | //已经接收到网关的反馈 |
| | | return true; |
| | | btnLight.IsSelected = true; |
| | | btnSetLight.TextColor = ZigbeeColor.Current.XMOrange; |
| | | btnSetLightLine.BackgroundColor = ZigbeeColor.Current.XMOrange; |
| | | btnSetLight.Enable = true; |
| | | } |
| | | } |
| | | } |
| | | if (report.DeviceStatusReport.CluterID == 1037) |
| | | { |
| | | var attriButeList = report.DeviceStatusReport.AttriBute; |
| | | foreach (var attList in attriButeList) |
| | | { |
| | | if (attList.AttributeId == 0) |
| | | |
| | | btnLight.MouseUpEventHandler += (sender, e) => |
| | | { |
| | | HdlThreadLogic.Current.RunMain(() => |
| | | { |
| | | UpdateStatus(); |
| | | }); |
| | | |
| | | //已经接收到网关的反馈 |
| | | return true; |
| | | } |
| | | } |
| | | } |
| | | if (report.DeviceStatusReport.CluterID == 1066) |
| | | { |
| | | var attriButeList = report.DeviceStatusReport.AttriBute; |
| | | foreach (var attList in attriButeList) |
| | | { |
| | | if (attList.AttributeId == 0) |
| | | //发送开关命令 |
| | | this.SetSwitchCommand(!btnLight.IsSelected); |
| | | }; |
| | | btnSetLight.MouseUpEventHandler += (sender, e) => |
| | | { |
| | | HdlThreadLogic.Current.RunMain(() => |
| | | { |
| | | UpdateStatus(); |
| | | }); |
| | | |
| | | //已经接收到网关的反馈 |
| | | return true; |
| | | } |
| | | } |
| | | //设置灯事件 |
| | | var AirQualitySensorLedBindTime = new Shared.Phone.UserCenter.DeviceBind.AirQualitySensorLedBindTime(aqSensor); |
| | | Shared.Phone.UserView.HomePage.Instance.AddChidren(AirQualitySensorLedBindTime); |
| | | Shared.Phone.UserView.HomePage.Instance.PageIndex += 1; |
| | | AirQualitySensorLedBindTime.Show(); |
| | | }; |
| | | btnHistoryText.MouseUpEventHandler += (sender, e) => |
| | | { |
| | | //查看历史记录事件 |
| | | var form = new DeviceTemperatureHistoryForm(); |
| | | form.AddForm(this.device); |
| | | }; |
| | | } |
| | | } |
| | | return false; |
| | | |
| | | /// <summary> |
| | | /// 空气质量传感器带有属性状态布局 |
| | | /// </summary> |
| | | /// <param name="frameWhiteBack"></param> |
| | | private void DeviceDataUI(FrameLayout frameWhiteBack) |
| | | { |
| | | //湿度容器 |
| | | var frameHumidityPic = new FrameLayout(); |
| | | frameHumidityPic.X = Application.GetRealWidth(121); |
| | | frameHumidityPic.Y = Application.GetRealHeight(213); |
| | | frameHumidityPic.Width = Application.GetMinRealAverage(311); |
| | | frameHumidityPic.Height = Application.GetMinRealAverage(351); |
| | | frameHumidityPic.BackgroundImagePath = "PM2.5Sensor/HumidityPic.png"; |
| | | frameWhiteBack.AddChidren(frameHumidityPic); |
| | | |
| | | //湿度文本 |
| | | var btnHumidityText = new NormalViewControl(338, 49, true); |
| | | btnHumidityText.Y = Application.GetRealHeight(45); |
| | | btnHumidityText.TextID = R.MyInternationalizationString.Humidity; |
| | | btnHumidityText.TextSize = 12; |
| | | btnHumidityText.TextColor = ZigbeeColor.Current.XMWhite; |
| | | btnHumidityText.TextAlignment = TextAlignment.Center; |
| | | frameHumidityPic.AddChidren(btnHumidityText); |
| | | |
| | | //湿度文本容器 |
| | | 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.BottomRight; |
| | | frameHumidityTextFrameLayout.AddChidren(btnHumidityStatus); |
| | | |
| | | //湿度单位 |
| | | var btnHumidityUnit = new NormalViewControl(50, 140, true); |
| | | btnHumidityUnit.X = btnHumidityStatus.Right; |
| | | btnHumidityUnit.Text = "%"; |
| | | btnHumidityUnit.TextSize = 14; |
| | | btnHumidityUnit.TextColor = ZigbeeColor.Current.XMWhite; |
| | | btnHumidityUnit.TextAlignment = TextAlignment.BottomLeft; |
| | | frameHumidityTextFrameLayout.AddChidren(btnHumidityUnit); |
| | | |
| | | //温度容器 |
| | | var frameTemperaturePic = new FrameLayout(); |
| | | frameTemperaturePic.X = Application.GetRealWidth(518); |
| | | frameTemperaturePic.Y = frameHumidityPic.Y; |
| | | frameTemperaturePic.Width = Application.GetMinRealAverage(321); |
| | | frameTemperaturePic.BackgroundColor = 0xffff0000; |
| | | frameTemperaturePic.Height = Application.GetMinRealAverage(351); |
| | | frameTemperaturePic.BackgroundImagePath = "PM2.5Sensor/TemperaturePic.png"; |
| | | frameWhiteBack.AddChidren(frameTemperaturePic); |
| | | |
| | | //温度文本 |
| | | var btnTemperatureText = new NormalViewControl(338, 49, true); |
| | | btnTemperatureText.Y = Application.GetRealHeight(45); |
| | | btnTemperatureText.TextID = R.MyInternationalizationString.Temperature; |
| | | btnTemperatureText.TextSize = 12; |
| | | btnTemperatureText.TextColor = ZigbeeColor.Current.XMWhite; |
| | | btnTemperatureText.TextAlignment = TextAlignment.Center; |
| | | frameTemperaturePic.AddChidren(btnTemperatureText); |
| | | |
| | | // 温度文本容器 |
| | | 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.BottomRight; |
| | | frameTemperatureTextFrameLayout.AddChidren(btnTemperatureStatus); |
| | | |
| | | //温度单位 |
| | | var btnTemperatureUnit = new NormalViewControl(50, 140, true); |
| | | btnTemperatureUnit.X = btnTemperatureStatus.Right; |
| | | btnTemperatureUnit.Text = "℃"; |
| | | btnTemperatureUnit.TextSize = 14; |
| | | btnTemperatureUnit.TextColor = ZigbeeColor.Current.XMWhite; |
| | | btnTemperatureUnit.TextAlignment = TextAlignment.BottomLeft; |
| | | frameTemperatureTextFrameLayout.AddChidren(btnTemperatureUnit); |
| | | |
| | | //PM2.5容器 |
| | | var framePmPic = new FrameLayout(); |
| | | framePmPic.X = Application.GetRealWidth(120); |
| | | framePmPic.Y = Application.GetRealHeight(634); |
| | | 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(338, 49, true); |
| | | btnPmText.Y = Application.GetRealHeight(45); |
| | | btnPmText.Text = "PM2.5"; |
| | | btnPmText.TextSize = 12; |
| | | btnPmText.TextColor = ZigbeeColor.Current.XMWhite; |
| | | btnPmText.TextAlignment = TextAlignment.Center; |
| | | framePmPic.AddChidren(btnPmText); |
| | | |
| | | // 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.BottomRight; |
| | | framePmTextFrameLayout.AddChidren(btnPmStatus); |
| | | |
| | | //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.BottomLeft; |
| | | framePmTextFrameLayout.AddChidren(btnPmUnit); |
| | | //产品部要求,暂时去掉Co2 |
| | | //Co2容器 |
| | | /* var frameCo2Pic = new FrameLayout(); |
| | | frameCo2Pic.X = Application.GetRealWidth(518); |
| | | frameCo2Pic.Y = framePmPic.Y; |
| | | frameCo2Pic.Width = Application.GetMinRealAverage(311); |
| | | frameCo2Pic.Height = Application.GetMinRealAverage(351); |
| | | frameCo2Pic.BackgroundImagePath = "AirQualitySensor/CO2Pic.png"; |
| | | frameWhiteBack.AddChidren(frameCo2Pic);*/ |
| | | //Co2文本 |
| | | /*var btnCo2Text = new NormalViewControl(338, 49, true); |
| | | btnCo2Text.Y = Application.GetRealHeight(45); |
| | | btnCo2Text.Text = "CO₂"; |
| | | btnCo2Text.TextSize = 12; |
| | | btnCo2Text.TextColor = ZigbeeColor.Current.XMWhite; |
| | | btnCo2Text.TextAlignment = TextAlignment.Center; |
| | | frameCo2Pic.AddChidren(btnCo2Text);*/ |
| | | |
| | | // Co2文本容器 |
| | | /* var frameCo2TextFrameLayout = new FrameLayout(); |
| | | frameCo2TextFrameLayout.Y = Application.GetRealHeight(113); |
| | | frameCo2TextFrameLayout.Gravity = Gravity.CenterHorizontal; |
| | | frameCo2TextFrameLayout.Height = Application.GetRealHeight(160); |
| | | frameCo2Pic.AddChidren(frameCo2TextFrameLayout);*/ |
| | | |
| | | //Co2数据 |
| | | /*var btnCo2Status = new NormalViewControl(162, 160, true); |
| | | btnCo2Status.Text = "155"; |
| | | btnCo2Status.TextSize = 30; |
| | | btnCo2Status.TextColor = ZigbeeColor.Current.XMWhite; |
| | | btnCo2Status.TextAlignment = TextAlignment.BottomRight; |
| | | frameCo2TextFrameLayout.AddChidren(btnCo2Status);*/ |
| | | |
| | | //Co2单位 (第4个,listControl【4】) |
| | | /*var btnCo2Unit = new NormalViewControl(112, 148, true); |
| | | btnCo2Unit.X = btnPmStatus.Right; |
| | | btnCo2Unit.Text = "ppm³"; |
| | | btnCo2Unit.TextSize = 14; |
| | | btnCo2Unit.TextColor = ZigbeeColor.Current.XMWhite; |
| | | btnCo2Unit.TextAlignment = TextAlignment.BottomLeft; |
| | | frameCo2TextFrameLayout.AddChidren(btnCo2Unit);*/ |
| | | |
| | | 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.listControl.Add(btnCo2Status);//(第7个,listControl【6】) |
| | | //this.listControl.Add(btnCo2Unit);//(第8个,listControl【7】) |
| | | |
| | | this.listFrameLayout.Add(frameHumidityTextFrameLayout);//(第1个,listFrameLayout【0】) |
| | | this.listFrameLayout.Add(frameTemperatureTextFrameLayout);//(第2个,listFrameLayout【1】) |
| | | this.listFrameLayout.Add(framePmTextFrameLayout);//(第3个,listFrameLayout【2】) |
| | | //this.listFrameLayout.Add(frameCo2TextFrameLayout);//(第4个,listFrameLayout【3】) |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | #region ■ 发送开关命令_______________________ |
| | | /// <summary> |
| | | /// 发送开关命令 |
| | | /// </summary> |
| | | /// <param name="isOpen">发送状态</param> |
| | | private void SetSwitchCommand(bool isOpen) |
| | | { |
| | | this.StartCheckResponeResult(listControl, (result) => |
| | | { |
| | | //接收到网关回复 |
| | | if (result == true) |
| | | { |
| | | HdlThreadLogic.Current.RunMain(() => |
| | | { |
| | | bool statu = ((TemperatureSensor)this.device).OnOffStatus == 1; |
| | | this.RefreshSwitchStatu(statu); |
| | | }); |
| | | } |
| | | }); |
| | | if (isOpen == true) |
| | | { |
| | | aqSensor.SwitchControl(1); |
| | | } |
| | | else |
| | | { |
| | | aqSensor.SwitchControl(0); |
| | | } |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | #region ■ 刷新开关状态_______________________ |
| | | |
| | | /// <summary> |
| | | /// 刷新开关状态 |
| | | /// </summary> |
| | | /// <param name="isOpen">打开状态</param> |
| | | private void RefreshSwitchStatu(bool isOpen) |
| | | { |
| | | btnLight.IsSelected = isOpen; |
| | | if (isOpen) |
| | | { |
| | | btnSetLight.TextColor = ZigbeeColor.Current.XMOrange; |
| | | btnSetLightLine.BackgroundColor = ZigbeeColor.Current.XMOrange; |
| | | btnSetLight.Enable = true; |
| | | } |
| | | else |
| | | { |
| | | btnSetLight.TextColor = ZigbeeColor.Current.XMGray3; |
| | | btnSetLightLine.BackgroundColor = ZigbeeColor.Current.XMGray3; |
| | | btnSetLight.Enable = false; |
| | | } |
| | | } |
| | | |
| | | #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设备属性上报) |
| | | { |
| | | if (report.DeviceStatusReport.CluterID == 6) |
| | | { |
| | | HdlThreadLogic.Current.RunMain(() => |
| | | { |
| | | //变更卡片状态 |
| | | this.RefreshSwitchStatu(((TemperatureSensor)this.device).OnOffStatus == 1); |
| | | }); |
| | | return true; |
| | | } |
| | | |
| | | if (report.DeviceStatusReport.CluterID == 1026) |
| | | { |
| | | var attriButeList = report.DeviceStatusReport.AttriBute; |
| | | foreach (var attList in attriButeList) |
| | | { |
| | | if (attList.AttributeId == 0) |
| | | { |
| | | HdlThreadLogic.Current.RunMain(() => |
| | | { |
| | | UpdateStatus(); |
| | | }); |
| | | |
| | | //已经接收到网关的反馈 |
| | | return true; |
| | | } |
| | | } |
| | | } |
| | | if (report.DeviceStatusReport.CluterID == 1029) |
| | | { |
| | | var attriButeList = report.DeviceStatusReport.AttriBute; |
| | | foreach (var attList in attriButeList) |
| | | { |
| | | if (attList.AttributeId == 0) |
| | | { |
| | | HdlThreadLogic.Current.RunMain(() => |
| | | { |
| | | UpdateStatus(); |
| | | }); |
| | | |
| | | //已经接收到网关的反馈 |
| | | return true; |
| | | } |
| | | } |
| | | } |
| | | if (report.DeviceStatusReport.CluterID == 1037) |
| | | { |
| | | var attriButeList = report.DeviceStatusReport.AttriBute; |
| | | foreach (var attList in attriButeList) |
| | | { |
| | | if (attList.AttributeId == 0) |
| | | { |
| | | HdlThreadLogic.Current.RunMain(() => |
| | | { |
| | | UpdateStatus(); |
| | | }); |
| | | |
| | | //已经接收到网关的反馈 |
| | | return true; |
| | | } |
| | | } |
| | | } |
| | | if (report.DeviceStatusReport.CluterID == 1066) |
| | | { |
| | | var attriButeList = report.DeviceStatusReport.AttriBute; |
| | | foreach (var attList in attriButeList) |
| | | { |
| | | if (attList.AttributeId == 0) |
| | | { |
| | | HdlThreadLogic.Current.RunMain(() => |
| | | { |
| | | UpdateStatus(); |
| | | }); |
| | | |
| | | //已经接收到网关的反馈 |
| | | return true; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | return false; |
| | | } |
| | | #endregion |
| | | |
| | | #region ■ 刷新状态_____________ |
| | | /// <summary> |
| | | /// 刷新状态 |
| | | /// </summary> |
| | | private void UpdateStatus() |
| | | { |
| | | //设置状态文字 |
| | | this.listControl[0].Text = aqSensor.currentHumidity.ToString(); |
| | | this.listControl[1].Text = aqSensor.currentTemperature.ToString(); |
| | | this.listControl[2].Text = aqSensor.currentPmData.ToString(); |
| | | //this.listControl[6].Text = aqSensor.currentCO2.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.listControl[6].Width = this.listControl[6].GetRealWidthByText(); |
| | | //this.listControl[7].X = this.listControl[6].Right; |
| | | |
| | | 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[3].Width = this.listControl[6].Width + this.listControl[7].Width; |
| | | this.listFrameLayout[0].Gravity = Gravity.CenterHorizontal; |
| | | this.listFrameLayout[1].Gravity = Gravity.CenterHorizontal; |
| | | this.listFrameLayout[2].Gravity = Gravity.CenterHorizontal; |
| | | //this.listFrameLayout[3].Gravity = Gravity.CenterHorizontal; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 质量等级 |
| | | /// </summary> |
| | | private string QuailityType() |
| | | { |
| | | var tempAirQuality = aqSensor.AirQuality(aqSensor); |
| | | string curQuality = string.Empty; |
| | | if (tempAirQuality == 1) |
| | | { |
| | | curQuality = Language.StringByID(R.MyInternationalizationString.ExcellentAirQuality); |
| | | } |
| | | else if (tempAirQuality == 2) |
| | | { |
| | | curQuality = Language.StringByID(R.MyInternationalizationString.GoodAirQuality); |
| | | } |
| | | else if (tempAirQuality == 3) |
| | | { |
| | | curQuality = Language.StringByID(R.MyInternationalizationString.Pollution); |
| | | |
| | | } |
| | | else |
| | | { |
| | | curQuality = ""; |
| | | } |
| | | |
| | | //设置状态文字 |
| | | return curQuality; |
| | | } |
| | | #endregion |
| | | } |
| | | #endregion |
| | | |
| | | #region ■ 刷新状态_____________ |
| | | /// <summary> |
| | | /// 刷新状态 |
| | | /// </summary> |
| | | private void UpdateStatus() |
| | | { |
| | | //设置状态文字 |
| | | this.listControl[0].Text = aqSensor.currentHumidity.ToString(); |
| | | this.listControl[1].Text = aqSensor.currentTemperature.ToString(); |
| | | this.listControl[2].Text = aqSensor.currentPmData.ToString(); |
| | | this.listControl[6].Text = aqSensor.currentCO2.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.listControl[6].Width = this.listControl[6].GetRealWidthByText(); |
| | | this.listControl[7].X = this.listControl[6].Right; |
| | | |
| | | 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[3].Width = this.listControl[6].Width + this.listControl[7].Width; |
| | | this.listFrameLayout[0].Gravity = Gravity.CenterHorizontal; |
| | | this.listFrameLayout[1].Gravity = Gravity.CenterHorizontal; |
| | | this.listFrameLayout[2].Gravity = Gravity.CenterHorizontal; |
| | | this.listFrameLayout[3].Gravity = Gravity.CenterHorizontal; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 质量等级 |
| | | /// </summary> |
| | | private string QuailityType() |
| | | { |
| | | var tempAirQuality = aqSensor.AirQuality(aqSensor); |
| | | string curQuality = string.Empty; |
| | | if (tempAirQuality == 1) |
| | | { |
| | | curQuality = Language.StringByID(R.MyInternationalizationString.ExcellentAirQuality); |
| | | } |
| | | else if (tempAirQuality == 2) |
| | | { |
| | | curQuality = Language.StringByID(R.MyInternationalizationString.GoodAirQuality); |
| | | } |
| | | else if (tempAirQuality == 3) |
| | | { |
| | | curQuality = Language.StringByID(R.MyInternationalizationString.Pollution); |
| | | |
| | | } |
| | | else |
| | | { |
| | | curQuality = ""; |
| | | } |
| | | |
| | | //设置状态文字 |
| | | return curQuality; |
| | | } |
| | | #endregion |
| | | } |
| | | } |